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 控制台中一切正常。有人可以解释一下我的表单中的 :session 是什么意思吗?我怎样才能得到我的电子邮件和密码?

4

1 回答 1

1

(将其移至答案,因为似乎大多数人都同意我的建议是解决 OP 问题的方法)

一个小提示:您可以通过将以下内容放在您的 create 方法的开头来转储params到浏览器中render :text => params.to_s and return

您可能需要在您的方法中引用params[:session][:email]和。params[:session][:password]create

form_for的第一个参数中的符号有据可查;见通用form_for

于 2012-07-13T14:25:47.880 回答