Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css Rails:将变量从视图传递到样式表_Css_Ruby On Rails - Fatal编程技术网

Css Rails:将变量从视图传递到样式表

Css Rails:将变量从视图传递到样式表,css,ruby-on-rails,Css,Ruby On Rails,在我看来,我提出了一个部分: <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_

在我看来,我提出了一个部分:

<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>

联系地址
我想设置值地址滑块\u top地址滑块\u left,以便我可以从视图中确定我的部分“地址滑块”在css.erb中的位置

#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;
}
#地址{
宽度:300px;
背景色:#fff;
高度:400px;
边缘顶端:px;
左边距:px;
}
它给了我一个本地跳转错误。 我试过了

<%= render partial: "address_slider", locals: {address_slider_top: 50, address_slider_left: 80} %>


但是我也不能让它工作。

资产不是视图。当然,HTTP对它们的处理是类似的,但它们的性质不同,用途也不同

大多数情况下,资产都有一个有趣的特性:它们是静态的,它们从不改变。另一方面,视图是数据的一种表示,并且经常发生变化

因此,Rails有一个资产管道,它利用了这种静态性。在开发中,资产保持较大,以便在每次更改时进行调试和重新编译。然而,在生产环境中,有一项特殊任务
rake assets:precompile
,它将资产编译到
public
文件夹中,然后通常由一个反向代理提供服务,如nginx,它可以快速完成


因此,在资产中嵌入变量的最佳选择是在视图中呈现有问题的样式。它可能是用HTML内联编写的,可能是一个呈现CSS的特定视图(但我从未见过有人真正这样做)。

是的,资产的处理方式与视图不同。在生产中,它们是预先编译的,从不更改。绕过这个将是。。。不太简单。最简单(但不是最好)的解决方案是相应视图中
中的CSS。谢谢,所以在我的情况下,最好的解决方案就是封装在一个div包装器中:我从没想过你会实际使用它。。。那好吧。我会写一个解释这个想法的答案。谢谢D-side,你帮了我很大的忙。