Todavía soy bastante nuevo para probar en Rails 3, y uso RSpec y Notable. Leí un montón de publicaciones y algunos libros, pero todavía estoy atascado en la incertidumbre sobre cuándo usar el nombre de la asociación, cuando es ID.La forma perfecta de validar y probar las asociaciones de Rails 3 (utilizando RSpec/Notable)?
class Project < ActiveRecord::Base
has_many :tasks
end
class Task < ActiveRecord::Base
belongs_to :project
end
Debido a las buenas prácticas, quiero proteger a mis atributos de asignaciones de masas:
class Task < ActiveRecord::Base
attr_accessible :project # Or is it :project_id??
belongs_to :project
end
En primer lugar, quiero para asegurarse de que un proyecto Nunca existe sin una tarea válida:
class Task < ActiveRecord::Base
validates :project, :presence => true # Which one is the...
validates :project_id, :presence => true # ...right way to go??
end
también quiere asegurarse de que el proyecto asignado o ID del proyecto es siempre válida:
class Task < ActiveRecord::Base
validates :project, :associated => true # Again, which one is...
validates :project_id, :associated => true # ...the right way to go?
end
... y necesito la validación de: presencia cuando uso: asociado ??
Muchas gracias por la aclaración, parece que después de horas de lectura y tratando de probar cosas usando RSpec/Shoulda/Notable No veo el bosque, porque de todos los árboles nunca más ...
Buena pregunta clara. Para confirmar, ¿no quiere decir que quiere "asegurarse de que una tarea ** nunca ** exista sin un proyecto válido (padre)"? –