Ich bin neu in Codierung - und haben nicht genug Ruf diese Antwort Kommentar: Rails 3: Uniqueness validation for nested fields_forRails 3: Einmaligkeit Validierung für verschachtelte fields_for - Teil2
So erschaffe ich diese Frage als „Teil 2“ :)
hey Leute pls helfen mir - ich bin ein Webdesigner, aber neugierig, Kodierung zu lernen, hielt damit aus meiner Zeit.
# app/validators/nested_attributes_uniqueness_validator.rb
class NestedAttributesUniquenessValidator < ActiveModel::EachValidator
record.errors[attribute] << "Products names must be unique" unless value.map(&:name).uniq.size == value.size
end
end
oben Code mit "ActiveModel :: EachValidator" diesen Fehler werfen:
"nicht definierte Methode` Karte‘für "Bereich 1": String"
# app/validators/nested_attributes_uniqueness_validator.rb
class NestedAttributesUniquenessValidator < ActiveModel::Validator
record.errors[attribute] << "Products names must be unique" unless value.map(&:name).uniq.size == value.size
end
end
oben Code mit "ActiveModel :: Validator" werfen Sie diesen Fehler:
"Unterklassen müssen eine validate (record) -Methode implementieren."
diese Modelldatei:
class Area < ActiveRecord::Base
validates :name,
:presence => true,
:uniqueness => {:scope => :city_id},
:nested_attributes_uniqueness => {:field => :name}
belongs_to :city
end
Sie vollständigen Code hier finden: https://github.com/syed-haroon/rose
Diese Validator-Klassen sehen wirklich komisch aus - Sie machen Ihre Prüfung direkt in der Klasse und nicht in der entsprechenden Instanz-Methode (wie die andere Frage, die Sie verknüpfen) –
Sie haben anderen Code im Repo für die Validator als was Sie hier zeigen .. haben Sie es funktioniert? –
Auch ich denke, Sie müssen diese Zeile https://github.com/syed-haroon/rose/blob/master/config/application.rb#L19 ändern, um die "# {Rails.root}/app/validators "' Ordner –