Soy nuevo en la codificación - y tienen la reputación no es suficiente para comentar esta respuesta: Rails 3: Uniqueness validation for nested fields_forRails 3: validación de unicidad para fields_for anidada - Part2
Así que estoy creando esta pregunta como "Parte 2" :)
hey guys pls ayúdame - soy un diseñador de páginas web pero tengo curiosidad por aprender a escribir, sostenido con esto de mis días.
# 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
por encima de código con "ActiveModel :: EachValidator" lanzar este error:
"método no definido 'mapa' para "Zona 1": Cadena"
# 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
por encima de código con "ActiveModel :: Validator" arroje este error:
"Las subclases deben implementar un método de validación (registro)"
esto es archivo de modelo:
class Area < ActiveRecord::Base
validates :name,
:presence => true,
:uniqueness => {:scope => :city_id},
:nested_attributes_uniqueness => {:field => :name}
belongs_to :city
end
Puedes encontrar el código completo aquí: https://github.com/syed-haroon/rose
Esas clases de validador se ven muy raras - usted está haciendo su verificación directamente en la clase en lugar de en el método de instancia apropiado (como hace la otra pregunta) –
Tiene un código diferente en el repositorio para el validador de lo que se muestra aquí ... ¿lo hiciste funcionar? –
también creo que necesita cambiar esta línea https://github.com/syed-haroon/rose/blob/master/config/application.rb#L19 para incluir el '" # {Rails.root}/app/validators "' carpeta –