Rails 5.2.3 環境ができたので、devise をインストールして基本的な動作の確認するまで。
Devise のインストールと動作確認
Devise のインストール
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
$ bundle exec rails g devise:install create config/initializers/devise.rb create config/locales/devise.en.yml =============================================================================== Some setup you must do manually if you haven't yet: 1. Ensure you have defined default url options in your environments files. Here is an example of default_url_options appropriate for a development environment in config/environments/development.rb: config.action_mailer.default_url_options = { host: 'localhost', port: 3000 } In production, :host should be set to the actual host of your application. 2. Ensure you have defined root_url to *something* in your config/routes.rb. For example: root to: "home#index" 3. Ensure you have flash messages in app/views/layouts/application.html.erb. For example: <p class="notice"><%= notice %></p> <p class="alert"><%= alert %></p> 4. You can copy Devise views (for customization) to your app by running: rails g devise:views =============================================================================== |
あとは指示通りにいろいろやっていく。
config/environments/development.rb の編集
config/environments/development.rb に以下を追加。パスワード変更とかそのへんで使われる URL に用いられるので、実際のアプリの URL に合わせておく。
1 |
config.action_mailer.default_url_options = {host: 'localhost', port: 3000 } |
動作確認用のページ作成
とりあえずサンプルのページを作って、ログインとかログアウトとかそのへんができるようにしておく。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
$ bundle exec rails g controller home index create app/controllers/home_controller.rb route get 'home/index' invoke erb create app/views/home create app/views/home/index.html.erb invoke test_unit create test/controllers/home_controller_test.rb invoke helper create app/helpers/home_helper.rb invoke test_unit invoke assets invoke coffee create app/assets/javascripts/home.coffee invoke scss create app/assets/stylesheets/home.scss |
次に routing の設定。デフォルトで home#index にルーティングされるように設定。
1 |
root to: "home#index" |
ユーザモデルを追加
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
$ bundle exec rails g devise user invoke active_record create db/migrate/20190909065528_devise_create_users.rb create app/models/user.rb invoke test_unit create test/models/user_test.rb create test/fixtures/users.yml insert app/models/user.rb route devise_for :users $ bundle exec rails db:migrate == 20190909065528 DeviseCreateUsers: migrating ================================ -- create_table(:users) -> 0.0009s -- add_index(:users, :email, {:unique=>true}) -> 0.0010s -- add_index(:users, :reset_password_token, {:unique=>true}) -> 0.0007s == 20190909065528 DeviseCreateUsers: migrated (0.0028s) ======================= |
home#index にログインログアウト周りを出すように設定
app/view/home/index.html.erb に以下を追記。
1 2 3 4 5 6 7 8 |
<% if user_signed_in? %> Logged in as <strong><%= current_user.email %></strong>.<br/> <%= link_to 'プロフィール変更', edit_user_registration_path %> | <%= link_to 'ログアウト', destroy_user_session_path, method: :delete %> <% else %> <%= link_to "サインイン", new_user_registration_path %> | <%= link_to "ログイン", new_user_session_path %> <% end %> |
動作確認
1 |
$ bundle exec rails s -b 0.0.0.0 |
で、home 画面が表示されること。ユーザのサインアップ、ログイン等ができることを確認