cocoon link_to_add_association 添加空关联字段 rails 4 erb
Posted
技术标签:
【中文标题】cocoon link_to_add_association 添加空关联字段 rails 4 erb【英文标题】:cocoon link_to_add_association adds empty association fields rails 4 erb 【发布时间】:2015-03-07 16:25:27 【问题描述】:我在我的 rails 4.1 + activeadmin 应用程序中使用 cocoon gem (1.2.6)。 link_to_add_association 在 ERB 表单中添加了带有 new 的空字段。请参考下面的输入ID
<input id="lease_information_lease_units_attributes_new_lease_units_property_name" type="text" name="lease_information[lease_units_attributes][new_lease_units][property_name]">
当我点击 link_to_add_association 时会创建带有 id 的字段。
<input id="lease_information_lease_units_attributes_1420800589434_property_name" type="text" name="lease_information[lease_units_attributes][1420800589434][property_name]">
我的lease_informations/_lease_units.html.erb 表格:
<%= javascript_include_tag :cocoon %>
<div id='lease_units'>
<%= f.semantic_fields_for :lease_units do |lease_unit| %>
<%= render 'lease_unit_fields', f: lease_unit %>
<% end %>
<div class='links'>
<%= link_to_add_association image_tag("icon-new.png", height: '18', width: '18'), f, :lease_units, title: "Add Unit" %>
</div>
</div>
部分_lease_unit_fields.html.erb:
<div class='nested-fields'>
<table>
<tbody>
<tr >
<td class="col col-unit_type">
<%= f.text_field :unit_type %>
</td>
<td class="col col-unit">
<%= f.text_field :unit %>
</td>
<td class="col col-action">
<%= link_to_remove_association image_tag("icon-remove.png", height: '18', width: '18'), f, title: "Remove Unit" %>
</td>
</tr>
</tbody>
</table>
</div>
我的管理员/lease_information.rb
ActiveAdmin.register LeaseInformation do
menu false
controller do
def new
@page_title="Data Entry Form"
@lease_information = LeaseInformation.new
# @lease_information.lease_units.build
end
end
form do |f|
tabs do
tab 'Units' do
table_for resource.lease_units do
column :unit_type
column :unit
end
render "lease_units", f: f # rendering the partial here
end
f.actions do
f.action :submit, label: "Submit"
f.cancel_link(admin_jobs_path)
end
end
end
因此,嵌套字段没有保存在数据库中。谁能帮我解决这个问题?
【问题讨论】:
能否请您张贴您要添加lease_units partial的主要表格 在帖子中添加了主表单。请参考 请在admin/lease_information.rb
文件中移动以下行,我认为这将解决您的问题。 ` 我认为将以下代码从 lease_informations/_lease_units.html.erb
移动到 admin/lease_information.rb
文件将解决您的问题。
<div class='links'>
<%= link_to_add_association image_tag("icon-new.png", height: '18', width: '18'), f, :lease_units, title: "Add Unit" %>
</div>
如果您遇到任何错误或需要任何帮助,请恢复。
【讨论】:
试过了,但是这些字段附带了 new,请提供任何其他解决方案。admin/lease_information.rb form do |f| tabs do tab 'Units' do f.semantic_fields_for :lease_units do |lease_unit| # render "lease_units", f: f render 'lease_unit_fields', f: lease_unit end link_to_add_association image_tag("icon-new.png", height: '18', width: '18'), f, :lease_units, title: "Add Unit" end end end
【参考方案2】:
如果保存不起作用,听起来您在父模型中缺少所需的accepts_nested_attributes_for :lease_units
。
大数字而不是新数字是正确的行为,每个新孩子都必须是不同的,我们不能称每个新孩子为新的,所以我们选择一个大的、唯一且不存在的数字,这样rails就会知道它是一个新孩子。
【讨论】:
app/models/lease_information.rb 类 LeaseInformation 您看到了什么错误?某些验证失败了吗?new
是 akward,不一定是错的。在您的代码中,lease_units.build
被注释掉了,那么新元素是在哪里生成的?以上是关于cocoon link_to_add_association 添加空关联字段 rails 4 erb的主要内容,如果未能解决你的问题,请参考以下文章
cocoon link_to_add_association 添加空关联字段 rails 4 erb
使用 COCOON Rails 3 在动态字段中自动完成 Jquery