用户可以注册并重定向到在开发模式下工作正常的页面,但在 heroku 上注册时它会创建用户,但之后而不是重定向到配置文件,它将进入登录页面。如果我使用凭据登录用户,它将不会登录。这样做后我检查过
class UsersController < ApplicationController
# skip_before_filter :verify_authenticity_token
before_filter :check_current_user
before_filter :authenticate_user!
def show
end
def check_current_user
user = User.find_by_id(session[:user_id])
puts 'xxxxxxxxxxxxxxxxxxxxxxxx' , user.inspect
end
end
check_current_user给我当前用户"nil"
如果你没有改变 Devise 标准行为,当然你在 check_current_user
期间current_user
nil ,那是因为该过滤器在 Devise 过滤器:authenticate_user!
之前被称为 U,它在其中设置了current_user
变量。只需尝试像这样交换两个过滤器:
before_filter :authenticate_user!
before_filter :check_current_user
此外,默认情况下,Devise 不会在会话中放置任何user_id
,因此该方法应如下所示:
def check_current_user
puts 'xxxxxxxxxxxxxxxxxxxxxxxx' , current_user.inspect
end
不确定它是否会解决您的所有问题,但至少是一个起点:)如果您仍然无法正常工作,请在您的问题中添加一些内容,以便我们进一步提供帮助。