私は cms に取り組んでおり、ページ コントローラーで動的なテンプレートを選択する必要があります。ユーザー設定で選択したテンプレート名を取得する前のフィルターがあります。次に、そのインスタンス変数を使用して正しいレイアウトをレンダリングする方法を理解する必要があります。
これが私がこれまでに持っているものです:
#This sets @template to the template object. @template.name is "Default"
before_filter :get_template
layout "templates/#{@template.name.downcase.gsub(" ", "_")}"
#layout "templates/default" #This line renders fine
次のエラーが表示されます。
undefined method `name' for nil:NilClass
私の推測では、テンプレートが呼び出される前に before_filter が実行されるとは限りません。
これを達成しようとするより良い方法はありますか?多くのテンプレートを使用して、どれをレンダリングするかを選択する経験はあまりありません。
前もって感謝します!