0
Listing < AR 
    has_many :images 
    accepts_nested_attributes_for :images, :allow_destroy => true 
    validate :validate_image_count 

    def validate_image_count 
    errors.add_to_base("too few") if images.length < 1 
    end 
end 

Image < AR 
    belongs_to :listing 
end 

私のリスト#編集フォームでは、fields_forを使用してすべての画像のフィールドとチェックボックスを使用して画像を削除します。これはうまくいきます。少なくとも1つのイメージが最大で6つしかない場合にのみ、リストが有効であるようなチェックを行いたい。Rais - 親のすべての子レコードの削除を防ぐ方法

私の現在の設定では、すべてのイメージを編集して削除してリストを更新することができます。

私は上記のように検証を試みましたが、呼び出されていません。 Nested_attributesがレールで動作する方法に過ぎません。この小切手を実施する最良の方法は何ですか?

+0

レコードを保存するコードの部分を追加できますか? – zsquare

答えて

0

妥当性確認メソッドを呼び出すと画像が削除されないため、画像の長さに対してtrueを返します。 marked_for_destructionを使用できますか?

def validate_image_count 
    errors.add_to_base("too few") self.images.any? { |i| i.marked_for_destruction? } 
end 
+0

あなたの答えに感謝します! – robodisco

+0

ようこそ。 :) –

関連する問題