Подтвердить что ты не робот

Как использовать контрольные точки для тестирования полиморфной привязки?

Я использую toa-matchers с рельсами, и я создаю модель под названием "комментарии" и другую модель под названием "post". Комментарии являются полиморфными.

Когда я тестирую с помощью сота-помощников в post, подобном этому

    it {should have_many(:comments)}

он получает это сообщение

Ожидаемое сообщение, чтобы иметь has_many ассоциация называется комментариями (Комментарий не имеет внешнего ключа post_id.)

В моей модели комментариев у меня есть

  belongs_to :commentable, :polymorphic => true

Как я могу проверить свою полиморфную связь, чтобы сообщение могло иметь много комментариев?

p.s. в документации сопутствующего устройства указывается, что он поддерживает полиморфные ассоциации.

4b9b3361

Ответ 1

Вам не нужно ничего делать в своем тесте для should, он должен просто работать. В своей модели сообщения убедитесь, что вы установили параметр :as:

has_many :comments, :as => :commentable

Это обеспечит правильное использование имен столбцов commentable_id и commentable_type, а не post_id.