开发者

How to use shoulda matchers to test a polymorphic association?

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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜