Has_one: через полиморфную принадлежность_ - PullRequest
4 голосов
/ 15 февраля 2012

У меня есть модель тегов с полиморфными ассоциациями для тегов и тегируемых элементов.Все тегируемые элементы имеют связь с feed_item (has_one: feed_item).Я хочу связать тегирование с feed_item, т.е. в tagging.rb

   belongs_to :taggable, :polymorphic => true
   belongs_to :tag, :polymorphic => true

   has_one :feed_item, :through => :taggable

Эта ассоциация has_one не работает.Например, в консоли Tagging.first.feed_item приводит к ошибке

 NameError: uninitialized constant Tagging::Taggable

Любой совет, как настроить такую ​​ассоциацию?

Для фона ниже приведен примерМодель тегируемого объекта:

 has_one :feed_item, :as => :item

IE: тегируемый объект has_one с тегами has_one feed_item.

Ответы [ 2 ]

0 голосов
/ 15 февраля 2012

Можете ли вы взглянуть на https://github.com/rahul/SO_9288016 и сообщить мне, если это не работает для вас.

Я также добавил крошечный db / development.sqlite3

0 голосов
/ 15 февраля 2012

Замените это:

has_one :feed_item, :through => :taggable

на это:

def feed_item
  self.taggable.feed_item
end

Теперь вы можете позвонить @taggable.feed_item, и оно будет работать.

...