레일 3.0.3을 사용하고 있습니다. 나는 4 개의 테이블을 가지고있다.ruby on rails- 범위 내에서 공용체 사용
class Artwork
has_and_belongs_to_many :tag_styles
has_and_belongs_to_many :tag_subjects
has_and_belongs_to_many :tag_arttypes
end
class TagArttype
set_table_name :tag_arttypes
has_and_belongs_to_many :artworks
end
class TagStyle
set_table_name :tag_styles
has_and_belongs_to_many :artworks
end
class TagSubject
set_table_name :tag_subjects
has_and_belongs_to_many :artworks
end
이 세 가지 tag_tables에는 모두 name 속성이 있습니다.
select a.* from artworks as a, tag_arttypes as ta, artworks_tag_arttypes as ata where a.id = ata.artwork_id and ta.id = ata.tag_arttype_id and ta.name = 'Abstract' union
select a.* from artworks as a,tag_styles as ta,artworks_tag_styles as ata where a.id = ata.artwork_id and ta.id = ata.tag_style_id and ta.name = 'Abstract'union
select a.* from artworks as a,tag_subjects as ta,artworks_tag_subjects as ata where a.id = ata.artwork_id and ta.id = ata.tag_subject_id and ta.name = 'Abstract';
감사 : 어떻게 단어를 받아 다음과 같은 SQL을 '추상'의 위치에두고 작품의 범위를 만들 수 있습니다!