Ruby on rails RubyonRails-在另一个模型上添加来自一个模型的字段';s形

Ruby on rails RubyonRails-在另一个模型上添加来自一个模型的字段';s形,ruby-on-rails,forms,custom-fields,Ruby On Rails,Forms,Custom Fields,我有两种型号的合同和附录。合同有许多附录,附录属于:合同 创建新合同时,将自动创建新附录,但创建新附录需要一些传统元素。如何在合同表单上添加一个字段值,它是附录中的属性,而不是合同中的属性?您要查找的是一个嵌套表单,这在RoR中非常常见。有关嵌套和复杂表单的详细信息,请参阅。我建议您查看所有的,在学习框架时非常有用的 对于您的具体问题,请首先告诉您的合同模型接受您的附录模型的嵌套属性 class Contract < ActiveRecord::Base has_many :adden

我有两种型号的
合同
附录
。合同
有许多附录,附录
属于:合同


创建新合同时,将自动创建新附录,但创建新附录需要一些传统元素。如何在合同表单上添加一个字段
,它是附录中的属性,而不是合同中的属性?

您要查找的是一个嵌套表单,这在RoR中非常常见。有关嵌套和复杂表单的详细信息,请参阅。我建议您查看所有的,在学习框架时非常有用的

对于您的具体问题,请首先告诉您的
合同
模型
接受您的
附录
模型的嵌套属性

class Contract < ActiveRecord::Base
  has_many :addendum
  accepts_nested_attributes_for :addendums
end
最后,在
合同
s表单中为
助手添加
表单

<%= form_for @contract do |f| %>

  <!-- contract fields -->

  Addendums:
  <ul>
    <%= f.fields_for :addendums do |addendums_form| %>
      <li>
        <%= addendums_form.label :value %>
        <%= addendums_form.text_field :value %>

        <!-- Any other addendum attributes -->

      </li>
    <% end %>
  </ul>
<% end %>

附录:

有了这些,你应该准备好了!快乐编码

c.f.或修订版。谢谢您的回复,它正在工作。但是,在合同的控制器上,如何访问与附录属性有关的参数值?它不应该是params[:address][:value]?对于嵌套的params,只需在
创建
更新
控制器方法中使用
@contract.assign_params(contract_params)
即可分配
合同参数。然后,您可以简单地调用
@contract.address.first.value
来获取第一个附录的值。这就是你要找的吗?哎呀,印刷错误。它应该是
@contract.addendums.first.value
<代码>附录应为复数。很抱歉。那么,补遗是自动创建的吗?我想我以后再创作。事实上,在合同的控制器上,我有
if Contract.save createaddress
和createaddress是我在控制器上创建的一个函数,它将获取参数值(关于附录形式)和基于其他字段计算的其他字段。。。
<%= form_for @contract do |f| %>

  <!-- contract fields -->

  Addendums:
  <ul>
    <%= f.fields_for :addendums do |addendums_form| %>
      <li>
        <%= addendums_form.label :value %>
        <%= addendums_form.text_field :value %>

        <!-- Any other addendum attributes -->

      </li>
    <% end %>
  </ul>
<% end %>