2

タグとタグ付け可能なアイテムへの多態的な関連付けを持つタグ付けモデルがあります。タグ付け可能なアイテムはすべてfeed_item(has_one:feed_item)に関連付けられています。 feed_itemにtagging.rbを関連付けたいHas_one:through多型belongs_to

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

背景については、次のタグ付け可能オブジェクトのモデルの一例です。これで

has_one :feed_item, :through => :taggable 

def feed_item 
    self.taggable.feed_item 
end 

今、あなたは@taggable.feed_itemを呼び出すことができ、それがうまくいく

+0

エラーを生成するために呼び出されているものは何ですか? – Substantial

+0

a = Tagging.first.feed_item – jay

+0

belongs_toでhas_oneできません。 – Eric

答えて

0

はこれを交換してください。

+0

そのメソッドは動作します..しかし、実際には関連性はないと思います。私はこれを言います。なぜなら、偉大な写真の中で私はこの協会を通じて関連したいからです。たとえば、タグ付けが多い記事があり、記事をhas_many:feed_items、:through =>:taggingに関連付けたい場合、これは上記の方法を関連として認識しません。 (つまり、Article.feed_itemsエラーはいいえ:feed_itemの関連付けがタグ付けモデルに存在する)。 – jay

+0

何? 'FeedItem'は' Tagging'自身やtaggableオブジェクト( 'Article'など)に属していますか? 'feed_item.rb'に関連付けを投稿してください。 – Substantial

+0

@gg_s FeedItemはTaggableObjectに属しています(OPは投稿を編集しました) – Rahul

0

https://github.com/rahul/SO_9288016をご覧になり、それがうまく動作しない場合は教えてください。

また、小さなdb/development.sqlite3を追加しました

+0

ねえラフル、助けてくれてありがとう。作成したアプリはうまく見えますが、Taggingにはfeed_itemに関連付けられていません。私が間違っていない限り、あなたはTagging.first.feed_itemを書くことはできません。右? – jay

+0

"記事はhas_many:feed_items、:through:>:タグ付け" - TaggingableObjectは既にhas_one:feed_item? – Rahul

+0

その場合、@ gg_sの解決策は使えませんか? – Rahul