2009-10-20 3 views
4

웹 사이트를 논리적으로 계정 (예 : acme.mywebsite.com, xyz.mywebsite.com)으로 분할 한 경우 act-as-taggable-on-steroids을 구현하고 현재 범위로 범위가 지정된 태그를 어떻게 사용할 수 있습니까? 계정?계정별로 acts_as_taggable_on_stereoids의 범위를 어떻게 지정할 수 있습니까?

acme에 액세스하는 경우 xyz 하위 도메인의 태그를보고 싶지 않습니다.

나는 행동을 taggable-on으로 들여다 보았지만 동일한 모델에 대해 다른 클래스의 태그를 갖고 싶다면 컨텍스트 만 제공됩니다.

답변

3

귀하의 질문을 이해한다고 가정하면 각 계정마다 act_as_taggable을 호출하는 응용 프로그램의 모든 모델에 적용 할 수있는 고유 한 태그 집합이 있습니다. 다음은 당신이 원하는 것을해야합니다.

응용 프로그램 컨트롤러에 다음을 추가하여 하위 도메인이 모든 작업에 액세스 할 수 있도록 할 수 있습니다.

class ApplicationController < ActionController::Base 

    before_filter :getSubdomain 

    def getSubdomain 
     @current_subdomain.(self.request.subdomains[0]) 
    end 
end 

태그를 데이터베이스의 하위 도메인에 연결한다고 가정하면 명명 된 범위를 만들 수 있습니다. 이 예에서는 하위 도메인이 사용자 이름이고 태그 모델이 사용자에게 속한 것으로 가정하면 태그 모델에서 명명 된 범위를 사용하여 하위 도메인과 관련된 항목 만 선택할 수 있습니다. Posts.tags.find_by_subdomain(@subdomain)

NB : 당신이에서 제공하는 태그 모델을 보완해야 할 것이다 행위로서의 taggable을-온 다음

class Tag < ActiveRecord::Base 
    ... 
    named_scope :find_by_subdomain, labmda do |subdomain| 
    { :joins => "users ON users.id = tags.user_id", :conditions => ["users.name = ?", subdomain] } 
    end 
end 

하위 도메인에 연결된 사용자가 작성한 게시물에 태그를 검색 스테로이드는 다음을 추가합니다. - 각 태그를 계정에 연결하는 열입니다. - 계정의 유효성 검사 유효성 검사입니다. 여러 계정에 동일한 태그가 허용됩니다.

1

계정이 모델 인 경우 태그가 지정된 개체의 계정을 소유자로 설정할 수 있습니다. 문서 : https://github.com/mbleigh/acts-as-taggable-on#tag-ownership

그런 다음 계정에 개체에 태그를 지정하도록 요청하십시오. 그런 다음 모든 태그를 찾으려면 소유자에게 알 태그 또는 태그 지정을 요청할 수 있습니다.