2012-10-02 124 views
0

使用Ruby on Rails 3.2。我正在尝试基于已定义的数组创建多个隐藏字段标记。下面是我的代码:循环数组创建HTML元素

# 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='' /> 

我做了什么错?

回答

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使用。