我尝试将此帖子(Devise update user without password)用于不需要插入密码以更新信息的用户。
但是,我很困惑这个控制器在哪里。设计不要在我的app/controller
文件夹中创建任何控制器。我在所有文件夹中搜索但我找不到。
我那个控制器在哪里? 我看到帖子谈论创建一个新的控制器,但我只想修改一些小东西。
答案 0 :(得分:1)
您不编辑(或不应该)Devise控制器。相反,您可以从Devise控制器创建自己的控制器和固有控制器。
# app/controllers/registrations_controller.rb
class RegistrationsController < Devise::RegistrationsController
def new
super
end
def update
# add custom update logic here
end
end
请注意RegistrationsController
对Devise::RegistrationsController
的影响。现在您可以覆盖注册方法(或修改它们并调用super
)。甚至关于覆盖设计默认行为的page you are referencing也依赖于类继承。
答案 1 :(得分:0)
JTG提供了很好的建议,你不应该直接编辑gem。作为这个问题的更直接的答案:
要打印宝石的文件夹:
$ bundle show devise
在文本编辑器中打开gem(确保不要更改任何内容)
$ bundle open devise