Day 13: Devise によるログイン機能付きサイトの作成

post on

from Qiita:

Environment

  • 仮想環境OS: Ubuntu 18.04
  • Ruby:2.51
  • Rails: 5.2.2
  • DB: PostgreSQL

flow

  1. controllersとviewsを以前の大学データの方から流用
  2. migrationファイル作成
  3. rooting変更

Contents

make migration file

rails g migration AddNameToStudents name:string gender:integer age:integer opinion:text
# 実行
#  create    db/migrate/20190324043018_add_name_to_students.rb

reflect change to DB

rails db:migrate

modify routing

# app/confing/routes.rb
# 追加
resources :students
root to: 'students#index'

modify views

# app/views/student.html.erb
# 今回不要なExamResultNewのリンク削除
# ログアウトリンクの作成
<% @students.each do |student| %>
  <tr>
    <td><%= student.try(:name) %></td>
    <td><%= student.email %></td>
    <td><%= student.try(:gender) %></td>
    <td><%= student.try(:age) %></td>
    <td><%= student.try(:opinion) %></td>
    <td><%= link_to 'Show', student %></td>
    <td><%= link_to 'Edit', edit_student_path(student) %></td>
    <td><%= link_to 'Destroy', student, method: :delete, data: { confirm: 'Are you sure?' } %></td>
    <%= link_to 'Log Out', destroy_student_session_path, method: :delete %>
  </tr>
<% end %>

modify controller

# app/controllers/student_controller.rb
class StudentsController < ApplicationController
  before_action :authenticate_student!
end