管理者がページに別のレイアウトを選択できるようにしています。今はただのテキスト入力で、名前を入力します。つまり、事前に名前を知っている必要があります。
タイプミスをすると例外が発生するため、コントローラーで次のようにしてレイアウトが存在することを確認しています。存在しない場合は、デフォルトで「アプリケーション」になります。
lookup_context.template_exists?(@page.layout, "layouts")
レイアウトのリストを取得できれば、コントローラーをチェックインする必要はもうありません。
actionview を確認しましたが、何も見つかりませんでした。Dir を使用してレイアウト ファイルのリストを取得できますが、含まれているエンジンのすべてのレイアウトが必要です。
エンジンからのものを含む、利用可能なすべてのレイアウトのリストを生成する方法を誰かが知っているかどうか疑問に思っていますか?