認証にDeviseを使用しているレガシーRails 3.2アプリがあります。以前は、Devise はそれの SessionController にデフォルトのアプリケーション レイアウトを使用しており、すべてのアプリのコントローラーは明示的に宣言されてlayout "public"いました。パブリック レイアウトをapplication.hamlに、以前のアプリケーション レイアウトをに変更することにしましたdevise.haml。Devise::SessionsControllerが正しいレイアウトを使用するようにするために、これをapplication.rbファイルに追加しました。
config.to_prepare do
Devise::SessionsController.layout "devise"
end
ただし、これを追加すると、ApplicationHelper で定義されたビュー ヘルパーにアクセスできないため、統合テストが失敗し始めます。このようにコントローラーのレイアウトを変更すると、ApplicationHelper メソッドを使用できなくなるのはなぜですか? また、これを修正するにはどうすればよいですか?