块后的label_tag的ERB结束标签

时间:2018-08-18 00:13:07

标签: ruby-on-rails erb

我需要一个ERB,它将在这样的代码块之后生成带有结束标签的HTML标签:

<label for="pic1" class="pic_s"><div>
<img src="https://upload.wikimedia.org/wikipedia/commons/7/79/Download_link.png" >
</div></label>

我尝试使用此ERB代码:

<%= radio_button_tag('pic', nil, :class => idx) do %>
<div><img src="https://upload.wikimedia.org/wikipedia/commons/7/79/Download_link.png"></div>
<% end %>

但是它给了我语法错误。还尝试过:

<%= label_tag 'pic', nil, :class => idx, raw("#{image_tag image}") %>

但是仍然给出语法错误。我使用的是Rails 2.3.17,根据https://apidock.com/rails/ActionView/Helpers/FormTagHelper/label_tag,只有版本> = 3.0.0会占用一个代码块。是否有另一种方法可以在不更新轨道的情况下完成此任务?似乎是一个很小的问题,无法解决并进行更新。

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用content_tag

# app/helpers/application_helper.rb
class ApplicationHelper
  def download_label
    content_tag :label, { :for => 'pic1', :class => 'pic_s' } do
      content_tag :div do
        image_tag('https://upload.wikimedia.org/wikipedia/commons/7/79/Download_link.png')
      end
    end
  end
end

# erb file
<%= download_label %>