こんにちは。
ログイン情報記録機能に関して理解できない点がありますので、質問させていただきます。
【やりたいこと】
login画面のRemember(アカウント設定の保存)機能を実装すること
【やったこと】
・user.rb・sessions_helper.rb・sessions_controllerに関連するコードを書きました。
詳細は下に記します。
【エラー】
ブラウザでRememberボタンを押すとエラーが表示されます。
そして表示されるエラーは以下です。
ターミナルで表示されるエラーは以下です。
NoMethodError (undefined method ` remember' for #<SessionsController:0x0000000925a428> Did you mean? remember): app/controllers/sessions_controller.rb:9:in `create' Rendered /usr/local/rvm/gems/ruby-2.3.0/gems/web-console-2.0.0.beta3/lib/action_dispatch/templates/rescues/_source.erb (5.8ms) Rendered /usr/local/rvm/gems/ruby-2.3.0/gems/web-console-2.0.0.beta3/lib/action_dispatch/templates/rescues/_trace.html.erb (2.6ms) Rendered /usr/local/rvm/gems/ruby-2.3.0/gems/web-console-2.0.0.beta3/lib/action_dispatch/templates/rescues/_request_and_response.html.erb (1.3ms) Rendered /usr/local/rvm/gems/ruby-2.3.0/gems/web-console-2.0.0.beta3/lib/action_dispatch/templates/rescues/_web_console.html.erb (1.0ms) Rendered /usr/local/rvm/gems/ruby-2.3.0/gems/web-console-2.0.0.beta3/lib/action_dispatch/templates/rescues/diagnostics.html.erb within rescues/layout (123.1ms)
【session_controller】
下の※のコードにあるrememberが未定義とのエラー内容ですが、
他ファイルできちんと定義しています...
class SessionsController < ApplicationController def new end def create user = User.find_by(email: params[:session][:email].downcase) if user && user.authenticate(params[:session][:password]) log_in user ** params[:session][:remember_me]=='1'?remember(user):forget(user)** redirect_to user else flash.now[:danger]='Invalid email/password combination' render 'new' end end def destroy log_out if logged_in? redirect_to root_url end end
【session_helper.rb】
def remember(user) user.remember cookies.permanent.signed[:user_id] = user.id cookies.permanent[:remember_token] = user.remember_token end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/17 03:23
2016/09/17 03:58
2016/09/17 04:05