私は次のモデルを持っています:
class Evaluation < ActiveRecord::Base
attr_accessible :product_id, :description, :evaluation_institutions_attributes
has_many :evaluation_institutions, :dependent => :destroy
accepts_nested_attributes_for :evaluation_institutions, :reject_if => lambda { |a| a[:token].blank? }, :allow_destroy => true
validate :requires_at_least_one_institution
private
def requires_at_least_one_institution
if evaluation_institution_ids.nil? || evaluation_institution_ids.length == 0
errors.add_to_base("Please select at least one institution")
end
end
end
class EvaluationInstitution < ActiveRecord::Base
attr_accessible :evaluation_institution_departments_attributes, :institution_id
belongs_to :evaluation
has_many :evaluation_institution_departments, :dependent => :destroy
accepts_nested_attributes_for :evaluation_institution_departments, :reject_if => lambda { |a| a[:department_id].blank? }, :allow_destroy => true
validate :requires_at_least_one_department
private
def requires_at_least_one_department
if evaluation_institution_departments.nil? || evaluation_institution_departments.length == 0
errors.add_to_base("Please select at least one department")
end
end
end
class EvaluationInstitutionDepartment < ActiveRecord::Base
belongs_to :evaluation_institution
belongs_to :department
end
EvaluationInstitution と EvaluationInstitutionDepartment のネストされた属性を含む評価用のフォームがあるため、フォームは 3 レベルにネストされています。レベル 3 は私に問題を与えています。
エラーは想定どおりにトリガーされますが、requires_at_least_one_department でエラーがトリガーされると、テキストは次のようになります。
評価機関拠点 少なくとも1つの部門を選択してください
メッセージは「少なくとも 1 つの部門を選択してください」と表示されます。
「評価機関ベース」の削除方法を教えてください。