我有一个遗留的Rails 3.2 应用,在其中我使用Devise进行身份验证。之前,Devise一直在使用默认的应用程序布局作为它的SessionController,而所有应用程序的控制器都明确声明了layout "public"
。我决定将公共布局更改为application.haml
,将先前的应用程序布局更改为devise.haml
。为了确保Devise::SessionsController
使用正确的布局,我在我的application.rb
文件中添加了以下内容:
config.to_prepare do
Devise::SessionsController.layout "devise"
end
当我这样做之后,我的集成测试开始失败,因为它们无法访问在ApplicationHelper中定义的视图辅助器。为什么以这种方式更改控制器的布局会阻止使用ApplicationHelper方法,我该如何解决这个问题?