更新设计控制器

时间:2011-09-02 13:56:02

标签: ruby-on-rails devise scaffolding

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

1 个答案:

答案 0 :(得分:3)

是的,您可以将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