0

この共通モデルパターンには名前がないようです。このRuby on Railsの共通モデルパターンの名前はありますか?ポリライン?

それは、acts_as_taggable[_whatever]のように多くのプラグインで使用していますし、それは基本的にタグのモデルに
これまで以上にbelongs_toの文を置くことなく、
が他のモデルと、タグなどの特定のモデルを結ぶことができます。

モデル(タグ)をジョインテーブルを表す多形ジョインモデル(タグ付け)
にリンクさせることで動作します。それは任意の
他のモデルが関連することができる自蔵モデルを作成します。
(彼らはhas_many経由関係:経由:&としてhas_manyの)私は、多くの場合、1つのものとしてモデルこのタイプの関係を参照したい


「ポリラインモデル」または「ポリラインモデル」と呼ぶこともできますか?
「ポリラインモデルにして、それを他のモデルに関連付ける」など。

他の提案はありますか?

はここacts_as_taggableモデルのための内部の仕組みです:

class Tag < ActiveRecord::Base 
    has_many :taggings 
end 

class Tagging < ActiveRecord::Base 
    belongs_to :tag 
    belongs_to :taggable, :polymorphic => true 
end 

class Whatever < ActiveRecord::Base 
    has_many :taggings, :as => :taggable, :dependent => :destroy 
    has_many :tags, :through => :taggings 
end 

class CreateTaggings < ActiveRecord::Migration 
    def self.up 
    create_table :taggings do |t| 
     t.references :tag 
     t.references :taggable, :polymorphic => true 
     t.timestamps 
    end 
    end 
end 

答えて

2

Railsの専門用語では、私は、これは通常「has_many :through」プレーンと呼ばれる見てきました。多型では、 "多形has_many :through"。 Railsの専門用語を取り除くと、一般的なパターンは "多形多対多関係"と呼ぶことができると思います。

+0

has_many_polymorphsを参照してください。http://blog.evanweaver.com/files/doc/fauna/has_many_polymorphs/files/README.html –

関連する問題