ruby-on-rails shoulda polymorphism

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.