--- a/config/routes.rb +++ b/config/routes.rb @@ -1,3 +1,4 @@ Rails.application.routes.draw do + resources :memos # For details on the DSL available within this file, see http://guides.rubyon routing.html end 3BJMT3&45ͱ͍͏ߟ͑ํʹͱ͍͍ͮͯΔ ‣ 3&QSFTFOUBUJPOBM4UBUF5SBOTGFS ‣ )551ϝιου Ͳ͏͍ͨ͠ ͱύεΫΤϦ ͳʹΛ Λͱ͍͏Έ߹ΘͤΛɺ Ϧιʔεͷૢ࡞ɺͱͯ͠நԽ͠ɺΞʔΩςΫνϟͷத৺ʹஔ͘ߟ͑ํ ‣ ͦͷϦιʔεͷૢ࡞ΛͬͯɺΞϓϦέʔγϣϯͷॲཧΛ࣮ݱ͢Δɻ ‣ ࠓճɺѻ͏ϝϞNFNPΛɺͦͷ··Ϧιʔεͱͨ͠ɻ
$ ./bin/rails g model user name:string $ ./bin/rails g migration AddUserRefToMemos user:references $ ./bin/rails db:migrate VTFSTςʔϒϧͱɺ[email protected]ΛՃ͢Δ
$ vim app/models/user.rb class User < ActiveRecord::Base has_many :memos end $ vim app/models/memo.rb class Memo < ActiveRecord::Base belongs_to :user end ؔ࿈Λઃఆ͢Δ
$ vim config/routes.rb # REST的に考えると「ログインする」のは(概念)セッションを作ること # 1ブラウザにつき1個なので単数リソース Rails.application.routes.draw do root to: 'memos#index' resources :memos resource :session end ࣮ͯ͠ΈΑ͏
class SessionsController < ApplicationController def new end def create user = User.find_by(id: params[:user_id]) if user reset_session session[:user_id] = user.id redirect_to root_path, notice: 'Login successed' else redirect_to root_path, alert: 'Login failed' end end end ճྫ
class ApplicationController < ActionController::Base protect_from_forgery with: :exception helper_method :logged_in?, :current_user private def logged_in? current_user.present? end def current_user if session[:user_id] @current_user ||= User.find(session[:user_id]) end end end ճྫϝιουԽͯ͠