我有Book
模型,接受_ented_attributes_for book_versions
:
class Book < ActiveRecord::Base
has_many :book_versions, dependent: :destroy
accepts_nested_attributes_for :book_versions
validates_associated :book_versions
当用户创建具有关联图书版本的图书时,它可以正常工作。但是,当用户编辑书籍时,它也不起作用。我希望它能够在用户编辑书籍时清除book_versions的所有嵌套表单字段,以便删除书籍版本。
我该怎么做?
答案 0 :(得分:0)
您可以尝试在BookVersion模型中添加一个保存后回调,如果为空则会破坏记录。勾勒出来。
class BookVersion < ActiveRecord::Base
after_save :delete_if_empty_attr
def delete_if_empty_attr
if foo.empty? && bar.empty?
self.destroy
end
end
end
答案 1 :(得分:0)
accepts_nested_attributes_for :book_versions, reject_if: :all_blank
来源:http://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.html