cocoon とモデルに許可されているフィールド数の検証で問題が発生しています。cocoon, rails3 を使用して、自分の場所に多くのリンクがあるネストされたフォームを作成しました。
各場所のリンク数を 5 に制限する必要があります。
私の location.rb モデルには、次のものがあります。
class Location < ActiveRecord::Base
has_many :links
accepts_nested_attributes_for :links, :reject_if => lambda { |a| a[:link_name].blank? }, :allow_destroy => true
validate :check_link_count
...
def check_link_count
if self.links.count > 5
self.errors.add :base, "No more than 5 links allowed."
end
end
...
最大 5 つのリンクを追加すると、すべて正常に機能します。
6 つのリンクを追加して保存すると、エラーが発生します。また良い。
問題は、リンクを削除しようとするときです-リンクは保存後にのみ削除されるようです(私は思います)。したがって、すべてのフィールドを削除しても、エラーが発生します。
助言がありますか?検証する別の方法はありますか?