私があなたの質問を理解したと仮定すると、acts_as_taggableを呼び出すアプリケーション内の任意のモデルに適用できる独自のタグのセットを持つ複数のアカウントがあります。以下はあなたが望むことをするはずです。
以下をアプリケーションコントローラーに追加して、サブドメインにすべてのアクションからアクセスできるようにすることができます。
class ApplicationController < ActionController::Base
before_filter :getSubdomain
def getSubdomain
@current_subdomain.(self.request.subdomains[0])
end
end
データベース内の何らかの方法でタグをサブドメインにリンクすると仮定すると、名前付きスコープを作成できます。この例では、サブドメインがユーザー名であり、タグ付けモデルがユーザーに属していることを前提としています。タグモデルで名前付きスコープを使用して、サブドメインに関連するスコープのみを選択できます。
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
次に、サブドメインに関連付けられたユーザーによって作成された投稿のタグを取得するには、次のようにします。Posts.tags.find_by_subdomain(@subdomain)
注意:以下を追加するには、acts-as-taggable-on-steroidsによって提供されるタグモデルを拡張する必要があります。-各タグをアカウントにリンクする列。-アカウントのスコープに対する一意性の検証。複数のアカウントが同じタグを持つことを許可します。