Ruby On Rails 帮助程序,用于创建网格



我正在尝试为网格创建一个帮助程序,我正在使用以下代码:

在应用程序/帮助程序/application_helper.rb 中:

module ApplicationHelper
  def grid_helper(names)
    names.each_slice(2) do |name1, name2|
      haml_tag 'div', class: 'column' do
        haml_tag 'div', class: 'thumb' do
          haml_concat link_to name1[:url] do
            image_tag name1[:thumb], alt: name1[:description], size: '36x36'
          end
        end
        haml_tag 'div', class: 'thumb' do
          haml_concat link_to name2[:url] do
            image_tag name2[:thumb], alt: name2[:description], size: '36x36'
          end
        end
      end
    end
  end
end

呼吁哈姆尔:

#mydiv
  - games = [{thumb: 'foo', description: 'foobar', url: 'foo'}, {thumb: 'bar', description: 'foobarbaz', url: 'bar'}]
  - grid_helper(games)

所以这放在 html 中:

<div class="column">
  <div class="thumb">
    <a href="/">foo</a>
  </div>
  <div class="thumb">
    <a href="/">bar</a>
  </div>
</div>

link_to无法正常工作,image_tag真的无法在我的助手身上工作,有人可以帮忙吗?

Obs:我正在使用 Rails4、Ruby2 和 sass/haml

问题出在以下行:

haml_concat link_to name1[:url] do ...

该块由haml_concat而不是link_to使用。你可以这样重写它

haml_concat(link_to name1[:url] { image_tag name1[:thumb], alt: name1[:description], size: '36x36' })

最新更新