Ruby on rails 3 铁路3&x2B;设计+;登录&x2B;控制器
我有一个简单的控制器,我想手动登录用户,由于某种原因,Desive方法登录不起作用 这是我的控制器:Ruby on rails 3 铁路3&x2B;设计+;登录&x2B;控制器,ruby-on-rails-3,devise,Ruby On Rails 3,Devise,我有一个简单的控制器,我想手动登录用户,由于某种原因,Desive方法登录不起作用 这是我的控制器: class Brand::ChallengesController < ApplicationController def sign_in user = User.find_by_email(params[:email]) if user and user.valid_password?(params[:password]) sign_in(:user, user)
class Brand::ChallengesController < ApplicationController
def sign_in
user = User.find_by_email(params[:email])
if user and user.valid_password?(params[:password])
sign_in(:user, user)
redirect_to brand_challenges_url
else
...
end
end
...
似乎我只能在Desive子类中使用此方法。
我试图包括许多设计助手,但暂时没有任何效果
def sign_in
user = User.find_by_email(params[:email])
if user and user.valid_password?(params[:password])
sign_in(:user, user)
^^^^^^^
看到那条线了吗。
您正在调用sign\u in
——这是您刚才编写的方法的名称。
这意味着你的代码正在调用自己。。。您的sign_in
方法的参数为零
(如果你拿走(:user,user)
部分…你实际上会得到堆栈溢出-因为你的代码会调用它自己…它会调用它自己…一次又一次,直到内存爆炸并死亡)
您是否正在尝试调用另一个名为“登录”的方法?如果是-该方法位于何处?Hi-您从何处获得错误?你能给我们完整的stacktrace(特别是导致错误的确切行号)我的天。。。我一定很累了。我相信问题在于方法名。。。我现在就试试,然后回到你身边
def sign_in
user = User.find_by_email(params[:email])
if user and user.valid_password?(params[:password])
sign_in(:user, user)
^^^^^^^