我想要的是拥有一个可以上传图片的表单,然后当您查看该对象时,图片会在特定div中居中,垂直和水平对齐。它的大小是未知的等等。
除非有办法使用image_tag帮助器垂直居中,否则我希望能够将图像用作背景图像。在我的.css.scss文件中,我希望能够执行类似
的操作.image_div {
background-image: image_url("#{@object.image}");
background-position: center
}
我使用CarrierWave上传图片,当我输出@ object.image时,它会将我计算机上的路径提供给图像(因此我不知道在生产中是否会被视为路径或网址)。有什么想法吗?
答案 0 :(得分:20)
可能在sass文件中使用erb,但这是一个非常非常糟糕的主意,因为你的css必须在每个请求上被解析(并且浏览器将无法缓存它)。
我建议只在样式标记的视图页面上直接粘贴一段css。这样就可以通过页面进行评估。有意义吗?
更新(添加请求的示例)
将此添加到您的实际视图(例如show.html.erb):
<style media="screen">
.image_div { background-image: url(<%= @object.image %>); }
</style>
您可以将background-position
声明保留在css文件中,因为它不是动态的。 @object.image
需要返回图像的实际路径,因此如果@object.image
是ruby对象,则需要访问存储路径的任何属性(@object.image.path
或@object.image.url
或者适合你代码库的任何东西)。