Ruby on rails Desive current_用户在我创建新用户Rails 3.2时返回零
我正在开发一个Rails应用程序,使用Desive进行注册。我使用单表继承来管理用户角色。我有三种用户模型Ruby on rails Desive current_用户在我创建新用户Rails 3.2时返回零,ruby-on-rails,ruby,ruby-on-rails-3,devise,Ruby On Rails,Ruby,Ruby On Rails 3,Devise,我正在开发一个Rails应用程序,使用Desive进行注册。我使用单表继承来管理用户角色。我有三种用户模型User
User
,Admin
和Collaborator
。协作者和管理员共享会话。我当前的问题是创建新用户,用户保存到数据库,用户登录?返回true,但由于某种原因,当前用户返回nil
用户创建帐户时,应重定向到my AccountsController索引操作,如下所示:
def index
@accounts = current_user.accounts
end
def after_sign_up_path_for(resource)
sign_in(resource)
accounts_path
end
结果:
undefined method `accounts' for nil:NilClass
当我尝试登录时,同样的代码也会起作用
我的路线如下所示:
我还创建了一些我使用的助手方法:
有人知道这是什么原因吗?我通过在注册后自定义路径来解决这一问题,如下所示:
def index
@accounts = current_user.accounts
end
def after_sign_up_path_for(resource)
sign_in(resource)
accounts_path
end
如果有更好的方法,请告诉我 我成功地解决了这个问题,在注册路径之后进行定制,如下所示:
def index
@accounts = current_user.accounts
end
def after_sign_up_path_for(resource)
sign_in(resource)
accounts_path
end
如果有更好的方法,请告诉我 有没有想过?我知道已经有几年了,但是遇到了类似的情况,我希望避免使用您的修复程序。这很简单,而且会起作用,但似乎你不应该再去想这个问题了?我知道已经有几年了,但是遇到了类似的情况,我希望避免使用您的修复程序。这很简单,而且会起作用,但似乎你不应该这么做