私は、ユーザーが多数のasset_allocationsを持つバスケットを作成できるアプリケーションを持っています。更新時に値が空のときにレコードを削除します
バスケットモデル
class Basket < ActiveRecord::Base
has_many :asset_allocations, :dependent => :delete_all
validates :name, presence: true
validates_uniqueness_of :name, allow_blank: true
accepts_nested_attributes_for :asset_allocations, :reject_if => lambda {|a| a[:ratio].blank?}, :allow_destroy => true
end
AssetAllocationモデル
class AssetAllocation < ActiveRecord::Base
belongs_to :basket
validates :ratio, :numericality => { :greater_than => 0 }, allow_blank: true
end
上記のコードは、新しいレコードを作成する上で完璧に動作します(比率が空であるとき、それはすべてのasset_allocationを無視します)が、どのように私はレコードを削除することができますasset_allocationテーブルの値が空の場合は?
が言うことができます、編集フォームに私が空にするとallocation3は新記録となり、その後、更新ボタンを押すことは、データベースからallocation2を削除する必要があります56からallocation2の値を変更し、インサートアロケーション3。
を使用して、あなたの条件に従ってあなたのフロントエンドでこの_destroyパラメータを設定することができますbefore_filter – Fallenhero