Has_one:通过多态的belongs_to

时间:2012-02-15 04:47:04

标签: ruby-on-rails ruby-on-rails-3 polymorphic-associations

我有一个Tagging模型,与标签和可标记项具有多态关联。可标记项目都与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 :(得分:0)

替换它:

has_one :feed_item, :through => :taggable

用这个:

def feed_item
  self.taggable.feed_item
end

现在你可以致电@taggable.feed_item,它会起作用。

答案 1 :(得分:0)

您能否看一下https://github.com/rahul/SO_9288016并告诉我它是否适合您。

我还添加了一个小的db / development.sqlite3