지금까지는 공지 사항에 태그를 지정하기 위해 acts_as_taggable_on 플러그인을 사용해 왔습니다.모델 간의 관계 구축 문제가 있습니다.
taggings : 플러그인이 다음 표 만듭니다
태그 및 공지 사항 테이블을 관련 (I 아래에 설명 할 것이다 어떤 태그가 달린 항목에 대한, 그것은 I가에 "announcement_id을"의 이름을 변경 taggable_id라는 필드가 있습니다) .
태그 : 아이디와 아이디가 있습니다.
다른 날, 특정 태그로 태그가 추가 된 알림을받을 방법이 없다는 것을 알았지 만 Announcement.tagged_with(tag_name)
을 수행하고 있으며 이름으로 검색하는 것을 원하지 않지만 이드는 검색합니다.
그래서 플러그인에서 기능을 거의 사용하지 않아서 태그 작성 및 태그 테이블에 대한 모델을 만들기로 결정했습니다. Announcement.tags
.
모델 '의 관계는 다음과 같은 모양 :
편집 :
class Tagging < ActiveRecord::Base
belongs_to :announcement
belongs_to :tag
end
class Tag < ActiveRecord::Base
has_many :taggings
has_many :announcements, :through => :taggings
end
class Announcement < ActiveRecord::Base
has_many :taggings
has_many :tags, :through => :taggings
이유는 명령 Announcement.tags
을 실행할 수 없습니다? 내가하려고 할 때 때문에, 나는 당신이 실제로 게시 한 것은 당신이 Announcement.tags
을 시도한 것입니다
정의되지 않은 메서드 '태그'
그렇다면 특정 tag_id로 태그가 지정된 모든 공지 사항을 가져 오려면 어떻게해야합니까? –
'Tag.find (tag_id) .announcements' – Chowlett
그건 작동하지 않습니다. –