ruby on rails - ¿Cómo usar los emparejadores de Shoulda para probar una asociación polimórfica?
ruby-on-rails polymorphism (1)
No debería tener que hacer nada especial en su prueba, ya que debería funcionar. En su modelo posterior, asegúrese de configurar la opción: :as
:
has_many :comments, :as => :commentable
Eso asegurará que los rieles utilicen los nombres de columna correctos commentable_id
y commentable_type
lugar de post_id
.
Estoy usando shoulda-matchers con rieles y estoy creando un modelo llamado "comentarios" y otro modelo llamado "post". Los comentarios son polimórficos.
Cuando pruebo con matcha shoulda en post como este
it {should have_many(:comments)}
recibe este mensaje
Se esperaba que la publicación tuviera una asociación has_many llamada comentarios (el comentario no tiene una clave foránea post_id).
En mi modelo de comentario tengo
belongs_to :commentable, :polymorphic => true
¿Cómo puedo probar mi asociación polimórfica para que una publicación pueda tener muchos comentarios?
ps, la documentación de matcha shoulda dijo que soporta asociaciones polimórficas.