Estoy usando rspec y estoy tratando de probar si mi modelo y tiene muchas x. He intentado todo tipo de cosas, incluido el bucle a través de la matriz de métodos, y parece que no puedo encontrar un buen método en línea. Entonces, ¿qué debería usar?¿Cómo puedo probar para belongs_to y has_many en Rails?
8
A
Respuesta
19
Sin mucha piratería podría utilizar emblemática joya: http://github.com/carlosbrando/remarkable
Tomado de documentos notables:
describe Post do
it { should belong_to(:user) }
it { should have_many(:comments) }
it { should have_and_belong_to_many(:tags) }
end
6
Puede reflexionar sobre la clase:
MyModel.reflect_on_association(:x).macro == :has_one
Es probablemente más fácil si usted sólo tiene que utilizar Shoulda, existen métodos de ayuda para que se lea mucho más limpia: it { should have_many(:x) }
1
aquí es una solución independiente rspec, la clave es usar reflect_on_assocation
class MyModel < ActiveRecord::Base
has_many :children
belongs_to :owner
end
reflection_children = MyModel.reflect_on_association(:children)
if !reflection_children.nil?
if reflection_children.macro == :has_many
# everything is alright
else
# it's not has_many but exists
end
else
# it doesn't exist at all !
end
reflection_owner = MyModel.reflect_on_association(:owner)
if !reflection_owner.nil?
if reflection_owner.macro == :belongs_to
# everything is alright!
else
# it's not belongs_to but exists
end
else
# it doesn't exist at all!
end
Cuestiones relacionadas
- 1. ¿Cuáles son los valores predeterminados para Rails 3 para: dependiente de has_many y belongs_to
- 2. belongs_to y has_many con el mismo modelo
- 3. rieles modelo has_many, belongs_to relaciones
- 4. Rails has_many polimórfica
- 5. Rails 3.2.2 - has_many través
- 6. ¿Has_many requiere belongs_to en el otro lado?
- 7. has_many build method, Rails
- 8. Cómo rectificar versiones en has_many/belongs_to association with paper_trail
- 9. Rieles: orden usando una relación has_many/belongs_to
- 10. Diferencia entre has_one y belongs_to en Rails?
- 11. rails has_many: a través de has_many: a través de
- 12. Rails has_one vs belongs_to semántica
- 13. Creación de asociaciones de modelos de rieles para has_many y belongs_to
- 14. Rieles: belongs_to y has_many el uso de identificadores no estándar
- 15. Cómo reflejar en la base de datos una nueva relación belongs_to y has_many en Ruby on Rails
- 16. Rails múltiple belongs_to para la misma clase
- 17. Rails Pregunta: belongs_to with STI - ¿cómo hago esto correctamente?
- 18. Rails Modelo has_many con multiple foreign_keys
- 19. Rails has_many: through y Setting Property on Join modelo
- 20. Rails 3 construir una etiqueta de selección con has_many belongs_to asociación
- 21. rails has_one de una asociación has_many
- 22. Rails 3 has_many changed?
- 23. ¿Cómo clasifico automáticamente una relación has_many en Rails?
- 24. Rails belongs_to association (with: class_name) returns nil
- 25. Ruby-on-Rails: Multiple has_many: through possible?
- 26. Rails polimórficos has_many: a través de
- 27. rails model has_many: a través de asociaciones
- 28. Creación de controladores y vistas para un has_many: a través de la relación en Rails 3
- 29. Cómo puedo probar: validación de inclusión en Rails usando RSpec
- 30. Validar el número de elementos has_many en Ruby on Rails
muy agradable! Creo que puedo comenzar a usar esa gema. –
Otra opción es Shoulda de thoughtbot, que tiene una sintaxis notablemente similar. http://github.com/thoughtbot/shoulda –
Apariencia notable más completa que Shoulda. No lo he visto antes –