我是 Ruby on Rails 的菜鸟,我有一个愚蠢的问题:在我的 session_controller 中我有
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
在路线中我匹配'/signin',到:'sessions#new'
在 new.html.haml 我有
= simple_form_for :session do |f|
= f.input :email
= f.input :password
= f.button :submit, 'Sign in!'
当我按下“登录”按钮时,我希望将调用“创建”方法(它在我的用户模型中如何工作),但调试向我显示“新”方法,并且我有“authenticity_token”而没有填写电子邮件和密码。有人可以解释我发生了什么吗?我不明白何时调用“新”方法以及其他方法。