sno*_*gel 4 forms ruby-on-rails formtastic ruby-on-rails-3
你如何使用Formtastic单独编辑多个记录来完成RyanB的Railscast所涵盖的内容?Formtastic不使用form_tag,RyanB的方法依赖于form_tag.
该semantic_form_for只是一个包装器form_for,以便您可以使用相同的参数.这是Ryan Bates的截屏视频版本
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| %>
<h2><%=h product.name %></h2>
<%= render "fields", :f => ff %>
<% end %>
<% end %>
<p><%= submit_tag "Submit" %></p>
<% end %>
Run Code Online (Sandbox Code Playgroud)
views/products/index.html.erb
<% semantic_form_for :edit_individual_products, :url => edit_individual_products_path do %>
<table>
<tr>
<th></th>
<th>Name</th>
<th>Category</th>
<th>Price</th>
</tr>
<% for product in @products %>
<tr>
<td><%= check_box_tag "product_ids[]", product.id %></td>
<td><%=h product.name %></td>
<td><%=h product.category.name %></td>
<td><%= number_to_currency product.price %></td>
<td><%= link_to "Edit", edit_product_path(product) %></td>
<td><%= link_to "Destroy", product, :confirm => 'Are you sure?', :method => :delete %></td>
</tr>
<% end %>
</table>
<p>
<%= select_tag :field, options_for_select([["All Fields", ""], ["Name", "name"], ["Price", "price"], ["Category", "category_id"], ["Discontinued", "discontinued"]]) %>
<%= submit_tag "Edit Checked" %>
</p>
<% end %>
Run Code Online (Sandbox Code Playgroud)
请注意,您也可以使用form_for帮助程序formtastic.
更新
如果你想使用嵌套属性,它应该开箱即用,在表单partial上使用fields_for.让我们坚持使用railscast示例并说:
product.rb
has_many :commments
accepts_nested_attributes_for :comments
Run Code Online (Sandbox Code Playgroud)
您可以编辑产品的_fields.html.erb上的注释,例如:
<%= f.fields_for :comments do |cf| %>
<%=render 'comments/fields', :f=>cf%>
<%end%>
Run Code Online (Sandbox Code Playgroud)
并确保在评论视图中有一个部分字段.
| 归档时间: |
|
| 查看次数: |
1418 次 |
| 最近记录: |