我试图在布局中声明可以在视图中覆盖的默认值。
这是我的布局:
<%# Variables defaults -%>
<%
@cssFiles = []
@jsFiles = []
-%>
<%# Variables overrides -%>
<%= yield :layoutVariables -%>
我的观点:
<% content_for :layoutVariables do -%>
<%
@cssFiles.push 'bootstrap'
@jsFiles.push 'bootstrap'
-%>
<% end -%>
我知道这可以通过在控制器中声明变量来完成,但我想知道范围是否可以从layout-&gt;视图扩展。
答案 0 :(得分:0)
正如我所见,您正在尝试在视图中收集一些资源文件。这不是一个很好的选择。 我建议制作新模块
配置/初始化/ frontend.rb:
Module Frontend
@@fe = Array.new()
def self.getfe
@@fe
end
def self.add_css(css)
@@fe << css
end
end
现在你可以简单地将你的css文件添加到这个数组的任何地方,只需调用:
Frontend::add_css "yourfile"
让你的阵列回来简单地调用
Frontend::getfe
这种带有类方法的机制也适用于视图 祝你好运!