Domanda

Se ho il mio sito web logicamente diviso in conti (ad es. Acme.mywebsite.com, xyz.mywebsite.com), come posso implementare ACT-come-oggetto di tag-on-steroidi e hanno i tag con scope dal conto corrente?

Per dare piccoli maggiori dettagli, se io sono l'accesso acme Non voglio vedere i tag da xyz sottodominio.

Ho guardato in atto-come-oggetto di tag-on, ma il di contesto solo è fornito se si vuole avere diverse classi di tag per lo stesso modello.

È stato utile?

Soluzione

Supponendo che ho capito la tua domanda nel senso che si dispone di più account ognuno con il proprio set di tag che potrebbe essere applicato a qualsiasi modello nell'applicazione che chiama acts_as_taggable. Il seguente dovrebbe fare quello che vuoi.

È possibile aggiungere il seguente al regolatore applicazione per rendere il sottodominio accessibile a tutte le azioni.

class ApplicationController < ActionController::Base

  before_filter :getSubdomain

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

Supponendo si collega un tag ad un sottodominio in qualche modo nel database, è possibile creare un ambito di nome. Questo esempio presuppone che il sottodominio è un nome utente e la tua modello di codifica appartiene ad un utente, è possibile quindi utilizzare un ambito denominato del modello di tag per selezionare solo quelli rilevanti per il sottodominio.

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

Poi per recuperare i tag sui messaggi che sono stati creati dall'utente associato al sottodominio: Posts.tags.find_by_subdomain(@subdomain)

NB: dovrete aumentare il modello di etichetta fornito da atti-come-oggetto di tag-on-steroidi per aggiungere le seguenti.  - Una colonna che collega ogni tag a un account.  - La validazione unicità al campo di applicazione a causa. Consentendo a più account di avere gli stessi tag.

Altri suggerimenti

Se account è un modello per voi, è possibile impostare conto dell'oggetto etichettato come il proprietario. Documentazione: https://github.com/mbleigh/acts-as-taggable -on # tag-proprietà

E poi chiedere conto per contrassegnare l'oggetto. Poi, per trovare tutti i tag, è possibile chiedere al proprietario di ottenere Al tag o marcature.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top