如何覆盖gem控制器动作Ruby on Rails?

时间:2012-11-24 23:21:57

标签: ruby-on-rails ruby ruby-on-rails-3 gem

我有设计 gem用于用户身份验证。 基本上,我想在本地覆盖Devise gem中的registrations_controller.rb。 gem中的代码:

class Devise::RegistrationsController < DeviseController
   ...
    def update
        ...(need to override)
    end
end

如果选择 edit_form 中的特定属性,我想将用户重定向到其他页面。

1 个答案:

答案 0 :(得分:2)

我建议不要覆盖这种方法。相反,请在配置文件编辑后查看有关自定义重定向的Wiki page。它解释了重写此方法:

def after_update_path_for(resource)
  user_path(resource)
end

您可以根据属性返回不同的路径,例如

def after_update_path_for(resource)
  resource.foo? ? foo_path : bar_path
end