0

ばかげた質問があります:

= simple_form_for :session, url: :sessions do |f|
  = f.input :email
  = f.input :password
  = f.button :submit, 'Sign in!'

def create
    user = User.find_by_email(params[:email])
    if user && user.authenticate(params[:password])
      session[:user_id] = user.id
      redirect_to root_path, :notice => "Logged in!"
    else
      flash.now.alert = "Invalid email or password"
      render "new"
    end
end

Railsコンソールではすべてがうまく機能するため、paramsに電子メールとパスワードがないようです。私のフォームで :session が何を意味するのか、どうすればメールアドレスとパスワードを取得できるのか、誰か説明してもらえますか?

4

1 に答える 1

1

(大多数が私が提案したことがOPの問題の修正であることに同意しているように見えるので、これを回答に移動します)

ちょっとしたヒント:params create method の先頭に次のコードを追加することで、ブラウザーにダンプできますrender :text => params.to_s and return

params[:session][:email]メソッドでandを参照する必要がある可能性がありparams[:session][:password]ますcreate

form_forの最初の引数のシンボルは十分に文書化されていますジェネリックform_forを参照してください。

于 2012-07-13T14:25:47.880 に答える