gpt4 book ai didi

ruby-on-rails - rails ,设计 : current_user is nil when overriding RegistrationsController

转载 作者:行者123 更新时间:2023-12-02 22:36:43 26 4
gpt4 key购买 nike

Rails 3.2.5,设计 2.1

使用 Devise 对用户进行身份验证,但在创建新用户时遇到问题。

用户属于我在用户模型中使用 before_save 过滤器创建的帐户。这工作正常并且有一段时间了。

新代码需要用户的帐户信息作为创建方法的一部分。我依赖于请求中传递的参数,因此这不是模型逻辑的理想选择。我已经覆盖了 Devise::RegistrationsController#create 方法:

class DeviseCustom::RegistrationsController < Devise::RegistrationsController
def create
super # Call Devise's create
account = current_user.account # FAIL! (current_user is nil)
account.partner_id = current_partner
account.save!
end
end

current_usernil 导致代码失败。即使在出现故障的情况下,我也可以看到用户和帐户记录正在保存到数据库中——日志显示提交,并记录 self.inspect 显示我所有的上下文(参数等等)都仍然存在。

我原以为 current_user 在此上下文中可用——获取我刚刚创建的用户的合适方法是什么?

谢谢

最佳答案

通过将 Devise 辅助方法包含在我的 Controller 中,我能够使用它们覆盖时。

包含 Devise::Controllers::Helpers

关于ruby-on-rails - rails ,设计 : current_user is nil when overriding RegistrationsController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11369941/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com