加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Railscast 198,但使用formtastic

发布时间:2020-12-17 03:00:45 所属栏目:百科 来源:网络整理
导读:你如何使用Formtastic单独编辑多个记录来完成 RyanB’s Railscast所涵盖的内容? Formtastic不使用form_tag,RyanB的方法依赖于form_tag. 解决方法 semantic_form_for只是form_for的包装器,因此您可以使用相同的参数.这是 Ryan Bates’ screencast的formtasti
你如何使用Formtastic单独编辑多个记录来完成 RyanB’s Railscast所涵盖的内容? Formtastic不使用form_tag,RyanB的方法依赖于form_tag.

解决方法

semantic_form_for只是form_for的包装器,因此您可以使用相同的参数.这是 Ryan Bates’ screencast的formtastic版本

意见/产品/ 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 %>

意见/产品/ 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 %>

请注意,您也可以使用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%>

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读