【发布时间】:2014-04-21 10:08:27
【问题描述】:
我有一个奇怪的问题,我似乎无法 find_by_email 在我的项目中工作,这是我遇到异常的控制器部分。我正在使用导轨4.0.3
def create
user = User.find_by_email(params[:email])
if user && user.authenticate(params[:password])
session[:user_id] = user.id
redirect_to root_url, notice: "Welcome back!"
else
flash.now.alert = "Email or password is invalid"
render "new"
end
end
我无法阻止代码有任何问题,但仍然收到 Action Controller: Exception catched:
NoMethodError in SessionsController#create
app/controllers/sessions_controller.rb:6:in `create'
undefined method `find_by_email' for #<Class:0x007fbdd62179b0>
我想知道是否有其他方法可以解决此问题?我尝试在 Rails 控制台中手动使用该方法,但收到了同样的问题。
【问题讨论】:
-
您使用的是哪个版本的 Rails?
-
User表有电子邮件字段吗? -
确保您的用户表中有
email字段。 -
对于 Rails4,使用
find_by(:email => params[:email]) -
@Santosh 我正在使用 Rails 4.0.3
标签: ruby-on-rails ruby methods controller