Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Desive current_用户在我创建新用户Rails 3.2时返回零_Ruby On Rails_Ruby_Ruby On Rails 3_Devise - Fatal编程技术网

Ruby on rails Desive current_用户在我创建新用户Rails 3.2时返回零

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

我正在开发一个Rails应用程序,使用Desive进行注册。我使用单表继承来管理用户角色。我有三种用户模型
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

如果有更好的方法,请告诉我

有没有想过?我知道已经有几年了,但是遇到了类似的情况,我希望避免使用您的修复程序。这很简单,而且会起作用,但似乎你不应该再去想这个问题了?我知道已经有几年了,但是遇到了类似的情况,我希望避免使用您的修复程序。这很简单,而且会起作用,但似乎你不应该这么做