estoy usando la gema permanent_records en mis rieles 3.0.10 aplicación, para evitar eliminaciones duras y parece rieles está haciendo caso omiso de mi ámbito predeterminado en el control de la unicidadRails 3 singularidad validar ignora ámbito predeterminado en el modelo
# user.rb
class User < AR::Base
default_scope where(:deleted_at => nil)
validates_uniqueness_of :email # done by devise
end
En mi consola de rails, tratar de encontrar a un usuario por correo electrónico que se ha eliminado da como resultado nulo, pero cuando se registra para una nueva cuenta con una dirección de correo electrónico eliminada, se produce un error de validación en el campo del correo electrónico.
Este es también el caso de otro modelo en mi aplicación
# group.rb
class Group < AR::Base
default_scope where(:deleted_at => nil)
validates_uniqueness_of :class_name
end
y que es el mismo caso que antes, la eliminación de un grupo, entonces tratar de encontrar por los resultados nombre de clase en nula, sin embargo cuando intento para crear un grupo con un nombre de clase borrado conocido falla la validación.
¿Alguien sabe si estoy haciendo algo mal o debería simplemente escribir validadores personalizados para este comportamiento?
Bueno, simplemente no olvides que "validates_uniqueness_of" está en desuso en los rieles 3. usa "validates: email,: unicidad => {: scope =>: deleted_at}" en su lugar. – sandrew
¿no llama al mismo validador de todos modos ...? – Jimmy
Voy a marcar esto como correcto ya que estaría perfectamente bien, por suerte anoche en lugar de pensar las cosas, escribí mi propio validador de exclusividad que funciona bien – Jimmy