mdk*_*rog 5 forms ruby-on-rails cocoon-gem
我已经在堆栈溢出和谷歌上搜索过,但没有结果。
我有一个人有近亲
我可以创建一个具有嵌套形式(带有茧)的人,并且它可以完美保存。由于某种原因,当我进入编辑页面时,它会删除关联的 next_of_kin 记录。它呈现填充有记录数据的字段,但数据库中的实际记录被删除。
我的表格
.full-width-row
= simple_form_for @person, url: {action: action}, wrapper: 'two_column_form' do |f|
.columns.medium-4
h4 = heading
.columns.medium-8
= f.button :submit, 'Save', class: 'right button tiny radius'
.columns.medium-12
.row
.medium-8.columns
= f.input :first_name
= f.input :last_name
= f.input :email
br
h6 Next of Kin
br
= f.simple_fields_for :next_of_kin do |nok|
= render 'next_of_kin_fields', f: nok
.link
= link_to_add_association "Add Next of Kin", f, :next_of_kin, class: 'button secondary tiny next_of_kin_button'
hr
Run Code Online (Sandbox Code Playgroud)
我的 _next_of_kin_fields 部分
.nested-fields
= f.input :first_name
= f.input :last_name
= f.input :relationship, as: :select, collection: NextOfKin::RELATIONSHIP
= f.input :telephone
= link_to_remove_association "Remove next of kin", f, class: 'remove-association button tiny alert'
Run Code Online (Sandbox Code Playgroud)
我的人物模型:
class Person < ActiveRecord::Base
has_one :next_of_kin, dependent: :destroy
accepts_nested_attributes_for :next_of_kin, allow_destroy: true
end
Run Code Online (Sandbox Code Playgroud)
我的 Next_of_kin 模型:
class NextOfKin < ActiveRecord::Base
belongs_to :person
RELATIONSHIP = [ "Mother", "Father", "Brother", "Sister", "Aunt", "Uncle", "Spouse", "Other"]
end
Run Code Online (Sandbox Code Playgroud)
当我访问编辑页面时,如何阻止它删除 next_of_kin 记录?
小智 6
设置force_non_association_create为link_to_add_association以true避免这种情况
= link_to_add_association "Add Next of Kin", f, :next_of_kin, force_non_association_create: true, class: 'button secondary tiny next_of_kin_button'
Run Code Online (Sandbox Code Playgroud)
Cocoon对此参数的文档:https ://github.com/nathanvda/cocoon#force_non_association_create