Html 对css/rails中的多个背景图像使用PG db到的图像URL

Html 对css/rails中的多个背景图像使用PG db到的图像URL,html,css,ruby-on-rails,Html,Css,Ruby On Rails,我正在尝试更改div的background image属性,使之等于rails应用程序中PG db的url HTML.ERB <div class="blogBody hCenterBlock"> <% @item.each do |i| %> <div class="newsItem"> <div class="section group blogTitle"> <div class="col col

我正在尝试更改div的background image属性,使之等于rails应用程序中PG db的url

HTML.ERB

<div class="blogBody hCenterBlock">
  <% @item.each do |i| %>
    <div class="newsItem">
      <div class="section group blogTitle">
        <div class="col col12">
          <h2 class="newsTitle">
            <%= i.title %>
          </h2>
        </div>
      </div>
      <div class="section group blogItem">
        <%= link_to(i.url,:class => "fancybox fancybox.iframe", 'data-thumbnail' => "#{i.image.thumb.url}", :rel => "gallery", :title => "#{i.title}") do %>
          <div class="col7 col blogImage">
            <div class="newsImg"></div>
          </div>
        <% end %>
        <div class="col5 col blogDescript">
          <p><%= i.description %></p>
        </div>
      </div>
    </div>
  <% end %>

非常感谢您的帮助!再次感谢您抽出时间

简而言之,您将无法从数据库中填充CSS(静态);您需要使用内嵌样式(在视图/布局中):


这样做的明显问题是,每次发送请求时,它都会启动一个db调用。最好的解决方法是使用条件调用,或者使用存储值

这对我有效,但我必须使用缓存

<div class="blogBody hCenterBlock">
  <% @item.each do |i| %>
    <% @bg_image = i.image.url %>
    <div class="newsItem">
      <div class="section group blogTitle">
        <div class="col col12">
          <h2 class="newsTitle">
            <%= i.title %>
          </h2>
        </div>
      </div>
      <div class="section group blogItem">
        <%= link_to(i.url,:class => "fancybox fancybox.iframe", 'data-thumbnail' => "#{i.image.thumb.url}", :rel => "gallery", :title => "#{i.title}") do %>
          <div class="col7 col blogImage" style="background: url(<%= i.image.url %>)"></div>
        <% end %>
        <div class="col5 col blogDescript">
          <p>
            <%= i.description %>
          </p>
        </div>
      </div>
    </div>
  <% end %>
</div>

“fancybox fancybox.iframe”、“数据缩略图”=>“#{i.image.thumb.url}”、:rel=>“gallery”、:title=>“#{i.title}”)do%>

我将内联样式更改为:

<div class="col7 col blogImage" style="background: url(<%= i.image.url %>)"></div>


谢谢你的帮助

因此,如果我有一个包含20个不同项目的列表,每个项目都有自己的不同图像,rails如何知道哪个@bg_图像与正确的@item匹配?
#app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
   before_action :set_bg

   private

   def set_bg
      @bg_image = ....
   end
end
<div class="blogBody hCenterBlock">
  <% @item.each do |i| %>
    <% @bg_image = i.image.url %>
    <div class="newsItem">
      <div class="section group blogTitle">
        <div class="col col12">
          <h2 class="newsTitle">
            <%= i.title %>
          </h2>
        </div>
      </div>
      <div class="section group blogItem">
        <%= link_to(i.url,:class => "fancybox fancybox.iframe", 'data-thumbnail' => "#{i.image.thumb.url}", :rel => "gallery", :title => "#{i.title}") do %>
          <div class="col7 col blogImage" style="background: url(<%= i.image.url %>)"></div>
        <% end %>
        <div class="col5 col blogDescript">
          <p>
            <%= i.description %>
          </p>
        </div>
      </div>
    </div>
  <% end %>
</div>
<div class="col7 col blogImage" style="background: url(<%= i.image.url %>)"></div>