티스토리 뷰

테이블 중 하나의 마이그레이션에서이 작업을 수행하거나 해당 마이그레이션이 실행 된 경우 별도의 마이그레이션에서 수행해야합니다.

create_table :articles_tags, :id => false do |t|
  t.references :article, :tag
  end
  
  add_index :articles_tags, [:article_id, :tag_id]
  

그러면 테이블이 생성되고 :id => falseRails에이 테이블에 id 필드를 추가하지 않도록 지시합니다. 이 조인 테이블에 대한 조회 속도를 높일 수있는 인덱스도 있습니다.

이를 위해 모델 (ArticlesTag)을 생성하고 다음을 수행 할 수도 있습니다.

# article.rb
has_many :articles_tags
has_many :tags, :through => :articles_tags

# tag.rb
has_many :articles_tags
has_many :articles, :through => :articles_tags

# article_tag.rb
belongs_to :tag
belongs_to :article

그런 다음 script/generate model articles_tag호출 에서 생성 된 마이그레이션에서 테이블을 만듭니다 .

-------------------

이것은 API에서 다룹니다.

http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#method-i-has_and_belongs_to_many

-------------------

마이그레이션에 색인을 추가 할 수도 있습니다.

add_index "articles_tags", "article_id"

add_index "articles_tags", "tag_id"

그러나 태그 기능을 원한다면 acts_as_taggable_on rails 플러그인을 권장합니다.

http://www.intridea.com/tag/acts_as_taggable_on http://github.com/mbleigh/acts-as-taggable-on/

나는 그것을 프로젝트에서 사용했고 구현하기가 매우 쉬웠다.

태그 지정을위한 조인 테이블의 문제 중 하나는 태그를 지정할 수있는 각 콘텐츠 유형 (예 : comments_tags, posts_tags, images_tags 등)에 대해 조인 테이블을 쉽게 만들 수 있다는 것입니다. 이 플러그인은 구분자를 포함하는 태그 지정 테이블을 사용하여 각 유형에 대한 특정 조인 테이블없이 콘텐츠 유형을 결정합니다.

-------------------

이 Qeuestion (1st answear)과 결합 하여 일반적인 사용자 HABTM 역할 관계를 설정하는 방법 과 여기에서 1st answear는 원숭이도 이해해야합니다. 나는 RoR에서 처음이고 매력처럼 작동하고 있습니다.



출처
https://stackoverflow.com/questions/1905034
댓글
공지사항
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31