WriteSomeCode「1. ユーザログイン認証の解答・解説」 - ECサイト作ろう編
#WriteSomeCode という Rails の問題を出すコミュニティを運営しています。週に1度問題を出して、note にてその解答と解説を紹介していきます。
今回は、その課題の1つ目の解答・解説を紹介していきます。問題は以下の GitHub Issue で管理しています。
課題に取り組んでみてから見ると勉強になると思います。
LandingPage を作りましょう
まず LandingPage を作っていきます。Controller とルーティングの設定を行います。
app/controllers/home_controller.rb を作成します。以下のように ApplicationController を継承した HomeController を作成しましょう
class HomeController < ApplicationController
def index
end
end
ついでに ApplicationController が定義されているファイル(app/controllers/application_controller.rb)も見ておきましょう。以下のようになっているはずです。
class ApplicationController < ActionController::Base
end
ApplicationController::Base を継承した class が ApplicationController だということが分かります。Rails はいろんなことを勝手にやってくれるフレームワークです。Controller も同様です。それはこの ApplicationController::Base を継承した class を使っているからこそ、短いコードでいろんなことが出来るようになっているということを覚えておきましょう。
class とか継承とかなんだ?と思った方は以下の記事でRubyについて復習しましょう
Controller を作成したので View を作成します。Rails way に則り以下のように app/views/home/index.html.erb テンプレートファイルを作成してあげます。
ファイルの中身は適当でOK。
<h1>HOME</h1>
Controller と View の設定が終わったので、route の設定をしてあげます。
config/routes.rb を開きます。以下のように記載されています。
Rails.application.routes.draw do
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
end
このファイルによると以下の URL を見るといろいろ routing の設定がわかるそうなので見ます。
http://guides.rubyonrails.org/routing.html
Rails の公式ドキュメントは日本語版も用意されているので以下を使ってもOK
https://railsguides.jp/routing.html#using-root
※ プログラミングで重要なのは、出来る限り信頼できる情報を得ることです。そして最も信頼出来る情報は公式のドキュメントです。
課題では、home#index をトップページ(URLが '/' になっている)にすることになっています。さきほdの公式ドキュメントによると、以下のようです。
rootメソッドを使うことで、Railsがルート'/'とすべき場所を指定できます。
root to: 'pages#main'
root 'pages#main' # shortcut for the above
ゆえに、以下のように設定してあげるのがよいでしょう
Rails.application.routes.draw do
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
root 'home#index'
end
サーバーを立ち上げて、結果を確認してあげましょう
$ rails s
上のように表示されているので、想定どおりに動いていることが確認できました。
Devise を導入してユーザ登録・ログイン機能を実装
次に、ユーザの登録機能とログイン機能を実装します。
devise という gem を導入します。
Gemfile に 'devise' と追記して、bundle install してあげましょう
$ bundle install
ライブラリを使うときに重要な考えは、公式のドキュメントをちゃんと読むことです。多くの人は Qiita などの個人がまとめているドキュメントを参照しますが、正直オススメできません。
なぜかというと、個人がまとめている内容はバージョンが変わっても更新されないですし、情報が正しくない場合も多いです。
devise ほど超有名なライブラリだと Qiita などに掲載されている記事でも割と信頼できますが、情報がまとまっていないライブラリを使う場合もあるので、公式ドキュメントを参照する癖をつけましょう。(初心者のうちは最初は公式ドキュメント読むの大変だと思うので、Qiita で見たけど出来なかった...というときに使うと良いですよ。)
以下のページにいくと、README という表記があります。
READMEとは日本語だと「私を読んで!」という意味で、まず最初に読んでほしいドキュメントをここに掲載するお約束になっています。
気が向いたらサポートお願いします!励みになるで🤗