我正在研究 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 不一定在调用模板之前运行。
有没有更好的方法可以让我尝试实现这一目标?我真的没有使用许多模板并选择要渲染的模板的经验。
提前致谢!