如何动态创建多个div并为每个div提供特定的背景图像?

时间:2015-12-15 16:53:55

标签: ruby-on-rails ruby haml

我有6个div,每个div将包含不同的背景图像。

而不是我写出来:

%div.container
  %div.projects
    =link_to('#') do
      %div.item
      /end div.item
    /end link_to()

    =link_to('#') do
      %div.item
      /end div.item
    /end link_to()

    =link_to('#') do
      %div.item
      /end div.item
    /end link_to()

    =link_to('#') do
      %div.item
      /end div.item
    /end link_to()

    =link_to('#') do
      %div.item
      /end div.item
    /end link_to()

    =link_to('#') do
      %div.item
      /end div.item
    /end link_to()
  /end div.projects
/end div.container

并改变每个div的类来说; item-1,item-2 ......等等,我如何动态创建div并仍设法用适当的背景图像填充它们?

我正在寻找一种完全干燥的方法。提前谢谢。

2 个答案:

答案 0 :(得分:1)

您可以简单地遍历包含所需信息的对象集合,使用image-url设置每个div的background-image属性:

%div.projects
  - projects.each do |project|
    = link_to(project.link) do
        %div{ style: "background-url: #{image-url(project.background_image)}" } = a

答案 1 :(得分:1)

只需使用loop

- 1..6.times.each do
  = link_to('#') do
      %div.item

如果你想专门循环你的对象,你最好使用这样的东西:

- projects.each do |project|
  = link_to project.name, project