如果嵌套模型的属性在父模型的表单中被空白,我想销毁嵌套模型 - 但是,ActiveRecord::Callbacks
如果模型为空白,似乎不会调用。
class Artist < ActiveRecord::Base
using_access_control
attr_accessible :bio, :name, :tour_dates_attributes
has_many :tour_dates, :dependent => :destroy
accepts_nested_attributes_for :tour_dates, :reject_if => lambda { |a| a[:when].blank? || a[:where].blank? }, :allow_destroy => true
validates :bio, :name :presence => true
def to_param
name
end
end
和
class TourDate < ActiveRecord::Base
validates :address, :when, :where, :artist_id, :presence => true
attr_accessible :address, :artist_id, :when, :where
belongs_to :artist
before_save :destroy_if_blank
private
def destroy_if_blank
logger.info "destroy_if_blank called"
end
end
我有一个艺术家表格,用于fields_for
显示艺术家相关巡演日期的字段,用于编辑和添加新的巡演日期,但如果我只是空白巡演日期(删除它),destroy_if_blank
则永远不会被调用。据推测,Artist 控制器的@artist.update_attributes(params[:artist])
行不认为值得更新的空白实体。
我错过了什么吗?有没有解决的办法?