【问题标题】:Rails 4: How to access database in SCSSRails 4:如何在 SCSS 中访问数据库
【发布时间】:2017-01-30 02:30:11
【问题描述】:

我已经在我的 Rails 项目中实现了 CarrierWave 上传器。现在我想在我的 SCSS 文件中将上传的文件设置为背景。

这样我在haml中访问图像:

= image_tag @item.cover_filename.url

这是我的 SCSS:

#head {
    background-image: url('cover.png'); /* change this from my current placeholder to the uploaded file. */
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center;
}

提前感谢您的帮助!如果您需要更多信息,请告诉我。

【问题讨论】:

    标签: css ruby-on-rails ruby ruby-on-rails-4 sass


    【解决方案1】:

    据我所知,让您的 SCSS 文件访问模型、current_user 信息等动态数据是不可能的,您实际上只能渲染静态 ruby​​ 代码。

    也就是说,您可以在布局文件中添加一些代码,或为这些页面创建自定义代码,以检查项目是否已上传自定义图像并在其中使用内联样式/CSS 进行更改。

    类似:

    <% if @item.cover_filename.url.exists? %>
      <body style="background-image: url('<%= @item.cover_filename.url) %>');">
    <% else %>
      <body>
    <% end %>
    

    【讨论】:

    • 谢谢!我怎么能在haml中做到这一点?这不起作用:#head{:style =&gt; "background-image: url('cover.png');"}
    • 我不使用 HAML,但您似乎在标题元素上设置了样式标签,这是不对的。我的示例在 body 标记上设置了内联样式。此外,您可能需要在内联样式上使用 !important 以使其覆盖您的默认样式。
    • Hmm.. 这是一个头部元素,只是我给了那个 id 的一个 div。我已经从我的 css 中删除了该默认状态,所以目前我只得到一个白色背景。
    • 我通过将其实现为image_tag 来修复它,并将其设置为看起来像背景。感谢您的帮助:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-23
    • 2020-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-16
    相关资源
    最近更新 更多