覆盖确认控制器时设计范围视图

Dav*_*acs 2 ruby-on-rails devise

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

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

我成功地使用我自己的作用域视图覆盖了确认/新视图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
Run Code Online (Sandbox Code Playgroud)

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

devise_for :users, :controllers => {:confirmations => 'app_confirmations'}
Run Code Online (Sandbox Code Playgroud)

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

我在使用客户控制器时是否缺少影响范围视图的配置设置?

小智 5

不确定这是否会起作用,因为我没有使用作用域视图,但是在覆盖默认设计注册视图和控制器时遇到了类似的问题.

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

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

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