Pergunta

Se eu tiver meu site logicamente dividido em contas (por exemplo, acme.mywebsite.com, xyz.mywebsite.com), como posso implementar ACT-AS TAGGABLE-STERÓIDES E as tags escovadas pela conta corrente?

Para dar pouco mais detalhes, se estou acessando Acme, não quero ver tags do subdomínio XYZ.

Eu olhei para o ato como tocável, mas o contexto Somente é fornecido se você deseja ter diferentes classes de tags para o mesmo modelo.

Foi útil?

Solução

Supondo que eu entendi sua pergunta, pois você tem várias contas, cada uma com seu próprio conjunto de tags que poderiam ser aplicadas a qualquer modelo em seu aplicativo que chama Acts_as_taggable. O seguinte deve fazer o que você deseja.

Você pode adicionar o seguinte ao controlador de aplicativos para tornar o subdomínio acessível a todas as ações.

class ApplicationController < ActionController::Base

  before_filter :getSubdomain

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

Supondo que você vincule uma tag a um subdomínio de alguma forma como no seu banco de dados, você pode criar um escopo nomeado. Este exemplo pressupõe que o subdomínio seja um nome de usuário e seu modelo de marcação pertence a um usuário, você pode usar um escopo nomeado no seu modelo de tag para selecionar apenas os relevantes para o subdomínio.

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

Em seguida, recuperar tags em postagens criadas pelo usuário associado ao subdomínio:Posts.tags.find_by_subdomain(@subdomain)

NB: Você precisará aumentar o modelo de tag fornecido pelos atos como tocáveis-esteróides para adicionar o seguinte. - Uma coluna vinculando cada tag a uma conta. - A validação de singularidade para escopo por conta. Permitindo que várias contas tenham as mesmas tags.

Outras dicas

Se a conta for um modelo para você, você poderá definir a conta do objeto marcado como o proprietário. Documentação: https://github.com/mbleigh/acts-as-taggable-on#tag-ownership

E depois peça uma conta para marcar o objeto. Em seguida, para encontrar todas as tags, você pode pedir ao proprietário que obtenha tags ou taggings AL.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top