更新设备控制器

发布于 2024-12-02 10:24:41 字数 125 浏览 2 评论 0原文

我在 Rails 应用程序中使用 Devise 进行用户身份验证。我已经创建了注册和会话控制器,但现在我想要一个从脚手架模拟 def update 的控制器。有没有办法访问 Devise 用于更新用户的控制器?

I am using Devise in a rails app for User Auth. I have already created both the registrations and sessions controller, but now I want a controller that simulates the def update from scaffolding. Is there a way to access the controller that Devise uses to update a user?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

墨洒年华 2024-12-09 10:24:41

是的,您可以对 devise 使用的 Registrations_controller 进行子类化,以编辑用户并使用更新操作执行任何您想要的操作,这是具有默认更新操作的子类化控制器:

class Users::RegistrationsController < Devise::RegistrationsController  

  def update
    self.resource = resource_class.to_adapter.get!(send(:"current_#{resource_name}").to_key)

    if resource.update_with_password(params[resource_name])
      set_flash_message :notice, :updated if is_navigational_format?
      sign_in resource_name, resource, :bypass => true
      respond_with resource, :location => after_update_path_for(resource)
    else
      clean_up_passwords(resource)
      respond_with_navigational(resource){ render_with_scope :edit }
    end

 end

end

Yes, you can subclass the registrations_controller used by devise to edit users and do whatever you want with the update action, this is the subclassed controller with the default update action in it:

class Users::RegistrationsController < Devise::RegistrationsController  

  def update
    self.resource = resource_class.to_adapter.get!(send(:"current_#{resource_name}").to_key)

    if resource.update_with_password(params[resource_name])
      set_flash_message :notice, :updated if is_navigational_format?
      sign_in resource_name, resource, :bypass => true
      respond_with resource, :location => after_update_path_for(resource)
    else
      clean_up_passwords(resource)
      respond_with_navigational(resource){ render_with_scope :edit }
    end

 end

end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文