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 %>