循环数组来创建HTML元素

时间:2012-10-02 16:34:02

标签: ruby-on-rails

使用Ruby on Rails 3.2。我试图基于定义的数组创建多个隐藏字段标记。以下是我的代码:

# shop.rb
...
ADDRESS_COMPONENTS = ['lat', 'lng', 'name']
...

# shops_helper.rb
module ShopsHelper
  def address_components_hidden_fields
    Shop::ADDRESS_COMPONENTS.each do |address_component|
      hidden_field_tag(address_component, "")
    end
  end
end

# _form.html.erb
<%= address_components_hidden_fields %>

输出结果为:

['lat', 'lng', 'name']

我期待输出为:

<input type='hidden' name='lat' id='lat' value='' />
<input type='hidden' name='lng' id='lng' value='' />
<input type='hidden' name='name' id='name' value='' />

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您需要将hidden_field_tag个助手连在一起。

module ShopsHelper
  def address_components_hidden_fields
    Shop::ADDRESS_COMPONENTS.map do |address_component|
      hidden_field_tag(address_component, "")
    end.join("\n")
  end
end

请注意mapjoin的使用情况。