我在视图中渲染部分:
<section class="about map">
<h3>Contact address</h3>
<div id="gmap">
</div>
<% content_for :address_slider_top, 50 %>
<% content_for :address_slider_left, 80 %>
<%= render partial: 'address_slider' %>
</section>
我想设置值 address_slider_top 和 address_slider_left ,这样我就可以从视图中决定我的css.erb中部分“address_slider”的位置
#addresses{
width: 300px;
background-color: #fff;
height: 400px;
margin-top: <%= yield(:address_slider_top).to_s %>px;
margin-left: <%= yield(:address_slider_left).to_s %>px;
}
它给了我一个LocalJumpError。 我试过
<%= render partial: "address_slider", locals: {address_slider_top: 50, address_slider_left: 80} %>
但我也无法使它发挥作用。
答案 0 :(得分:1)
资产不是观点。当然它们受到HTTP的类似处理,但它们在本质上并不相似,并且用于不同的目的。
大部分时间资产都有一个有趣的属性:它们是静态的,它们永远不会改变。另一方面,视图是数据的表示,并且经常发生变化。
因此,Rails有一个利用该静态的资产管道。在开发过程中,资产保持较大以便于调试,并在每次更改时重新编译。但是,在生产中,有一个特殊任务rake assets:precompile
可以将资产编译到public
文件夹中,然后通常由反向代理服务,例如 nginx 快速执行。< / p>
因此,在资源中嵌入变量的最佳选择是在视图中呈现相关样式。它可能是用HTML内联编写的,它可能是一个呈现CSS的特定视图(但我从来没有见过任何人真正这样做过)。