Railsでよく見るストロングパラメーター。
~ private def session_params params.require(:session).permit(:email, :password) end end
フォームから、リクエスト時のパラメータをチェックする。この場合、{ session: {...}}
であるかどうかをまず調べている。
具体的に見てみるとわかりやすい。
~ private def session_params puts "!" * 30 #追記 pp params #追記 puts "!" * 30 #追記 params.require(:session).permit(:email, :password) end end
pp params
の結果。
<ActionController::Parameters {"authenticity_token"=>"geLk2zy+P81jdGKQV52cqbuCH8SxXsp6RfuyV0l3SSwAggyOjFqL3KEVK/ibvJrqCvhqQz7qxEVnwcB9XJ/s5g==", "session"=>{"email"=>"paul@example.com", "password"=>"testtest"}, "commit"=>"ログイン", "controller"=>"sessions", "action"=>"create"} permitted: false>
session の email と password をストロングパラメーターで取得しているのがわかる。
params.require(:session)
の session の部分はコントローラー名を単数形にしたものが入ることに注意。モデル名ではない。