Rails遍历表单字段中的数据

时间:2011-07-01 18:06:19

标签: ruby-on-rails ruby-on-rails-3 forms for-loop

我想循环浏览表单中的数据库中的数据。我想对数据做什么把它放在标签和文本框中。我怎么能在铁轨上这样做?我只是使用.each块在表单内循环它吗?我在我的数据库中拥有它的原因是因为我的客户希望能够自己添加表单字段数据。


例如,我想做的事情是:

<%= form_for :order do |f| %>
  @fields.each do |field|
    <%= f.label field.name %>
    <%= f.text_field field.name %>
  <% end %>
  <%= f.submit %>
<% end %>

完成这样的事情最好的方法是什么?

请不要使用railscast回答:)

提前致谢

1 个答案:

答案 0 :(得分:2)

是的,虽然您错过了第二行的结束脚本标记,但这样可行:

<%= form_for :order do |f| %>
   <% @fields.each do |field| %>  
       <%= f.label field.name %>
       <%= f.text_field field.name %>
   <% end %>
   <%= f.submit %>
<% end %>

如果您需要比标签/文本字段对更复杂的东西 - 那么您可以使用部分模板并使用collection关键字:

<!-- in 'order.html.erb' -->
<%= form_for :order do |f| %>
   <!-- note: each 'field' is auto-populated from the collection/partial-name, but you need to pass the form in as a local -->
   <%= render :partial => 'field', :collection => @fields, :locals => {:f => f} %>  
   <%= f.submit %>
<% end %>

<!-- in '_field.html.erb' -->
<%= f.label field.name %>
<%= f.text_field field.name %>
<!-- and whatever else you want to do... -->

更多关于部分渲染的信息:http://api.rubyonrails.org/classes/ActionView/Partials.html