【问题标题】:Rails UserRegistrationsController not Inheriting from Devise::RegistrationsControllerRails UserRegistrationsController 没有从 Devise::RegistrationsController 继承
【发布时间】:2013-06-11 09:07:18
【问题描述】:

我对 Rails 还很陌生,但关注的是excellent suggestion/walkthrough here。我已经创建了我的两种用户类型(客户和开发人员),可以成功地使用 Devise。但是,我还希望允许这两种用户类型在登录后编辑他们的一些属性。这些属性也特定于他们的用户类型(客户端特定字段或开发人员特定字段)。

为此,我认为我需要在user_registrations_controller 中创建一个自定义的update,它继承自Devise::RegistrationController,这样才有意义。然而,在我的定制过程中,我意识到在update 中我无法从Devise::RegistrationController 调用其他默认方法。作为健全性检查,我用原始 update 中定义的 update 方法的精确副本覆盖了 update,但仍然存在此问题。

更具体地说,我收到的错误是:undefined local variable or method 'account_update_params' for #<UserRegistrationsController:0x007fe4f0342d58>,尽管 account_update_params 是继承控制器中的一个方法。

是否有更好的方法可以在 Devise 中编辑特定于我的用户类型(客户/开发人员)的字段,而无需自定义 update?另外,这个错误是怎么回事,因为我相信我是从Devise::RegistrationController 继承的?

有什么想法吗?非常感谢帮助和建议! =)

版本:Rails 3.2.12,ruby 1.9.3p249

【问题讨论】:

  • 我当时设法解决了这个问题,完全避免了这个问题。但差不多两个月后,我再次来到这里,意识到这个问题仍然存在=\。事实上,我完全忘记了我发布的这个问题,并且做了完全相同的步骤,唉,遇到了完全相同的问题。非常感谢任何帮助 =)。

标签: ruby-on-rails-3 inheritance devise controller


【解决方案1】:

重新访问后,我发现了这个related question。虽然这篇文章和最佳答案是针对 Rails 4 的,但可以在 Gemfile 中找到解决方案。

将您的设计 gem 包含替换为 gem '设计', :git => 'git://github.com/plataformatec/devise.git'

不幸的是,仅仅做gem 'devise' 并没有得到这个更新版本。希望这对其他人有帮助!

【讨论】:

    猜你喜欢
    • 2013-10-12
    • 1970-01-01
    • 2012-09-24
    • 1970-01-01
    • 2011-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    相关资源
    最近更新 更多