Ruby on Rails 가이드와 다형성 연관에 대한 질문에 대한 stackoverflow 응답을 읽은 후 해당 사용과 구현을 이해하지만 특정 사용 시나리오에 대해 질문이 있습니다. 나는 (또한 tags
변화 한) 여러 topics
, categories
, images
및 기타 다양한 모델과 관련된 대신 tags
테이블 내에서 참조 필드 (foreign_id
, foreign_type
)을 배치의 수 tags
을 가지고, 나는 별도을 만들 원합니다 연관 테이블. :polymorphic => true
을 사용하여 여전히 가능합니까? 이 같은Separate Polymorphic Association 테이블
뭔가이 가능하지 않은 경우, 나는이 같은 :object_tags
테이블을 생성하고 연결을 강제로 Tag
모델과 다른 모델에서 :conditions
를 사용하여 계획되었다
create_table :tags do |t|
t.string :name
t.remove_timestamps
end
create_table :object_tags, :id => false do |t|
t.integer :tag_id
t.references :tagable, :polymorphic => true
t.remove_timestamps
end
. 이 작업을 수행하는 레일 방법이 있습니까? 감사! (레일 3.0.9 & 루비 1.8.7 < 작업 - 배포 서버는 여전히 1.8.7을 사용하고 있기 때문에)
UPDATE : 감사 DELBA! Answer은 HABTM 다형성을위한 작업 솔루션입니다.
class Tag < ActiveRecord::Base
has_many :labels
end
class Label < ActiveRecord::Base
belongs_to :taggable, :polymorphic => true
belongs_to :tag
end
class Topic < ActiveRecord::Base
has_many :labels, :as => :taggable
has_many :tags, :through => :labels
end
create_table :tags, :timestamps => false do |t|
t.string :name
end
create_table :labels, :timestamps => false, :id => false do |t|
t.integer :tag_id
t.references :taggable, :polymorphic => true
end
UPDATE
: 내가 양방향 HABTM을 필요로하기 때문에, 나는 개별 테이블을 만들어 다시가는 끝났다.
왜 이렇게 가고 싶습니까? (순수한 호기심, 판단 없음) – Damien
각 모델의 연관에 대해 별도의 테이블을 만드는 대신 '태그'에 사용할 수있는 모든 연결을 포함하는 단일 테이블을 만드는 것이 더 효율적입니다. 현재 개인별 연관표를 사용하여 설정하고 있습니다. 귀하의 질문에 대한 답변 저는 실제로 이런 종류의 해결책이 필요 없다는 것을 알고 있습니다. 내가 찾고있는 종류의 설치가 더 많은 메모리를 사용하겠습니까? –
나는 지금도 의견의 시작조차 갖고 있지 않습니다. 나는 다형성 habtm을하는 레일 방법이 있다고 생각하지 않지만, 나는 확실히 그것을 시도해 볼 것입니다. 좋은 질문입니다. Upvoted! 편집 : 그것은 귀하의 질문에 있지만 대답과 함께 잘 모르겠습니다 : http://stackoverflow.com/questions/6964678/habtm-polymorphic-relationship – Damien