Railscast 198,但使用formtastic

你如何使用Formtastic单独编辑多个记录来完成RyanB的Railscast所涵盖的内容? Formtastic不使用form_tag,RyanB的方法依赖于form_tag。

semantic_form_for只是form_for的包装器,因此您可以使用相同的参数。 这是Ryan Bates的截屏video版本

views/products/edit_individual.html.erb

 <% semantic_form_for :update_individual_products, :url => update_individual_products_path, :method => :put do |f| %> <% for product in @products %> <% f.fields_for "products[]", product do |ff| %> 

<%=h product.name %>

<%= render "fields", :f => ff %> <% end %> <% end %>

<%= submit_tag "Submit" %>

<% end %>

views/products/index.html.erb

 <% semantic_form_for :edit_individual_products, :url => edit_individual_products_path do %>  <% for product in @products %>  <% end %> 
Name Category Price
<%= check_box_tag "product_ids[]", product.id %> <%=h product.name %> <%=h product.category.name %> <%= number_to_currency product.price %> <%= link_to "Edit", edit_product_path(product) %> <%= link_to "Destroy", product, :confirm => 'Are you sure?', :method => :delete %>

<%= select_tag :field, options_for_select([["All Fields", ""], ["Name", "name"], ["Price", "price"], ["Category", "category_id"], ["Discontinued", "discontinued"]]) %> <%= submit_tag "Edit Checked" %>

<% end %>

请注意,您也可以使用form_for帮助程序以及formtastic

更新

如果你想使用嵌套属性,它应该开箱即用,使用表单partial上的fields_for。 让我们坚持使用railscast示例并说:

product.rb

 has_many :commments accepts_nested_attributes_for :comments 

您可以编辑产品的_fields.html.erb上的注释,例如:

 <%= f.fields_for :comments do |cf| %> <%=render 'comments/fields', :f=>cf%> <%end%> 

并确保在评论视图中有一个部分字段。