태그와 Ruby on Rails를 사용하는 경우 나는 acts_as_taggable_on을 강력히 권장합니다.
이이 같은 일을 할 수있게된다 :
class User < ActiveRecord::Base
# Alias for <tt>acts_as_taggable_on :tags</tt>:
acts_as_taggable
acts_as_taggable_on :skills, :interests
end
@user = User.new(:name => "Bobby")
@user.tag_list = "awesome, slick, hefty" # this should be familiar
@user.skill_list = "joking, clowning, boxing" # but you can do it for any context!
@user.skill_list # => ["joking","clowning","boxing"] as TagList
@user.save
@user.tags # => [<Tag name:"awesome">,<Tag name:"slick">,<Tag name:"hefty">]
@user.skills # => [<Tag name:"joking">,<Tag name:"clowning">,<Tag name:"boxing">]
@frankie = User.create(:name => "Frankie", :skill_list => "joking, flying, eating")
User.skill_counts # => [<Tag name="joking" count=2>,<Tag name="clowning" count=1>...]
@frankie.skill_counts
아주 쉽게
구현할. 그리고 배열에서 특정 요소를 찾는 방법에 대해 걱정할 필요가 없습니다.
필요한 관계 연산자는 [모든 부분을 제공하는 공급 업체]로 널리 알려져있는 [division] (http://en.wikipedia.org/wiki/Relational_algebra#Division_.28.C3.B7.29)입니다. ] (http://www.dbdebunk.com/page/page/772076.htm). 비즈니스 분석가 또는 도메인 전문가에게 [정확한 부분 또는 나머지를 포함하는 부분]을보아야하는지 문의하십시오 (http://www.simple-talk.com/sql/t-sql-programming/divided-we-stand-the- sql-of-relational-division /)과 빈 divisior를 처리하는 방법 (예 : 모든 공급 업체가 제공하고 빈 부품 목록을 제공합니까?) – onedaywhen
관계 구분 (http://luhong.wordpress.com/2006/03/05/relational-division-in-sql/)을 찾는 것 같아 보입니다. 이것은 아마도 추악하고 대부분 읽을 수없는 코드로 변할 것입니다. 그렇지 않으면 이름이 지정된 범위 (또는 rails3에있는 경우 범위)를 정의하고 태그를 반복하고 모든 태그와 일치하지 않는 부분을 필터링 할 수 있습니다. 그러나 ActiveRecord가 실제로 SQL 쿼리를 여러 번 실행하게 할 수 있습니다. ActiveRecord는 사이트를 느리게 만들 수 있기 때문에 원하는 것이 아닐 수 있습니다. – Frost