我有一个具有任意数量的子实体的模型.为简单起见,我们可以调用实体Orders和Items.我想有一个创建订单表单,我输入订单信息,以及添加任意数量的项目.如果单击“添加其他项”按钮,将添加一组新的表单元素以输入新数据,金额等.
我可以用纯粹的javascript来解决这个问题,但是我很确定必须有一个更神奇,更有轨可行的方法来实现它,可能是部分视图或其他东西.我只是对铁路有点太新了解它是什么.
动态添加新表单元素然后在创建控制器中访问它们的最佳方法是什么?
解决方法
无法击败Ryan Bates提供的这个
Railscasts.com教程.
Episode 196: Nested Model Form,pt. 1
这是一个只使用一个嵌套级别的示例
楷模
车型/ company.rb
class Company < ActiveRecord::Base has_many :people,:dependent => :destroy accepts_nested_attributes_for :people,:allow_destroy => true end
车型/ person.rb
class person < ActiveRecord::Base belongs_to :company end
控制器
companies_controller.rb
def new @company = Company.new 3.times { person = @company.people.build } end
查看
意见/公司/ _form.html.erb
<% form_for @company do |f| %> <%= f.error_messages %> <p> <%= f.label :name %><br /> <%= f.text_field :name %> </p> <%= f.fields_for :people do |builder| %> <%= render "people_fields",:f => builder %> <% end %> <p><%= f.submit "Submit" %></p> <% end %>
意见/公司/ _people_fields.html.erb
<p> <%= f.label :name,"Person" %> <%= f.text_field :name %> <%= f.check_box :_destroy %> <%= f.label :_destroy,"Remove" %> </p>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。