我有一个表格,需要为与其他几个表格有关系的表格显示。例如,我有一个表“案例”(想想,调查员案例),它是 has_one 索赔人和 has_one 客户。
我希望表单显示要填写案例数据、客户数据和索赔人数据的字段。有没有一种简单的方法可以做到这一点,以便在提交时,它就像:
case = Case.new(params[:case])
case.save
如果我只是为案例数据提交和保存表单,会是这样吗?
我有一个表格,需要为与其他几个表格有关系的表格显示。例如,我有一个表“案例”(想想,调查员案例),它是 has_one 索赔人和 has_one 客户。
我希望表单显示要填写案例数据、客户数据和索赔人数据的字段。有没有一种简单的方法可以做到这一点,以便在提交时,它就像:
case = Case.new(params[:case])
case.save
如果我只是为案例数据提交和保存表单,会是这样吗?
我不相信有一种方法可以让您只调用 case.save 就可以了。
要制作表格,请考虑使用 fields_for。http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#M001605
fields_for 允许您添加存储在不同 POST 变量中的字段,因此如果您正确设置字段,那么在您的新方法中您可能会执行以下操作:
claimant = Claimant.new(params[:claimant])
claimant.save
这并不是非常复杂。
听起来您正在寻找accepts_nested_attributes_for
activerecord 的方法。您将需要使用
- form.fields_for :claimant do |claimant_form|
= claimant_form.text_field :name
您可以在Ryan Daigle 的博客文章中找到更多信息
请参阅我关于创建嵌套多模型表单的复杂表单示例。这已更新为与 Rails 2.3 的accepts_nested_attributes_for
.
它允许您根据需要嵌套所有关联params[:case]
。当您调用时,case.save
其他所有内容也将被保存。