Come faccio a portata acts_as_taggable_on_stereoids di account?
-
22-09-2019 - |
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.
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.