I'm using shoulda-matchers with rails and I'm creating a model called "comments" and another model called "post". Comments is polymorphic.
When I test with shoulda matchers in post like this
it {should have_many(:comments)}
it get this message
Expected Post to have a has_many association called comments (Comment does not have a post_id foreign key.)
In my comment model I have
belongs_to :commentable, :polymorphic => true
How can I test my polymorphic association so that a post can have many comments?
p.s. the shoulda matcher documentation said it supports polymorphic associations.
You shouldn't need to do anything special in your test for should
it should just work. On your post model ensure sure you set the :as
option:
has_many :comments, :as => :commentable
That will ensure rails uses the proper column names commentable_id
and commentable_type
rather than post_id
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With