2

我在 OSX 上使用 Devise 2.0.0 和 Rails 3.2.3。

是否可以同时覆盖设计控制器和设计视图?

我成功地用我自己的范围视图覆盖了确认/新视图,位于views/users/confirmations/new.html.erb. 范围视图工作正常。

然后我发现有必要Devise::ConfirmationsController用我自己的控制器覆盖AppConfirmationsController,以便自定义 after_confirmation_path_for 方法以返回我自己的自定义路径。

class AppConfirmationsController < Devise::ConfirmationsController
  protected
    def after_confirmation_path_for(resource_name, resource)
      confirmed_app_custom_path
    end
end

我更改了路线,以便使用我的自定义控制器

devise_for :users, :controllers => {:confirmations => 'app_confirmations'}

新控制器工作正常,但我的范围视图不再被识别。不是渲染我的范围视图,而是渲染设计默认视图。如果我停止使用我的自定义控制器,我的作用域视图会再次开始工作。

使用客户控制器时,我是否遗漏了一些影响范围视图的配置设置?

4

1 回答 1

5

由于我没有使用范围视图,因此不确定这是否可行,但是在覆盖默认的设计注册视图和控制器时遇到了类似的问题。

对我来说,我必须确保我的视图的父目录与新的设计控制器具有相同的名称,并且一切正常。

devise_for :users, :controllers => { :registrations => "app_registrations" } 然后我的自定义控制器在views/app_registrations/new.html.erb

移动你的观点有views/users/app_confirmations/new.html.erb帮助吗?

于 2012-07-13T04:02:51.537 回答