我有一个愚蠢的问题:
= 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
看起来我在params中没有电子邮件和密码,因为在rails控制台中一切都运行良好。有人可以解释一下:会话在我的表单中是什么意思,我怎样才能收到我的电子邮件和passowrd?
答案 0 :(得分:1)
(将其转为答案,因为看起来多数人同意我所建议的解决OP的问题)
小提示:您可以将以下内容放入创建方法params
的开头,将render :text => params.to_s and return
转储到浏览器中。 < / p>
您可能需要在params[:session][:email]
方法中引用params[:session][:password]
和create
。
form_for
的第一个参数中的符号是well documented;请参阅通用form_for
。