Frage

Wenn ich meine Website logisch in Konten aufgeteilt (zB. Acme.mywebsite.com, xyz.mywebsite.com), wie kann ich implementieren Akt-as-markierbare-on-Steroiden und haben die Tags durch das Kontokorrent scoped?

Um etwas mehr Details geben, wenn ich Acme bin Zugriff Ich mag nicht, Tags aus xyz Sub-Domain sehen.

Ich habe in Akt-as-markierbare-on gesucht, aber die Kontext nur zur Verfügung gestellt, wenn Sie unterschiedliche Klassen von Tags für das gleiche Modell haben mögen.

War es hilfreich?

Lösung

Unter der Annahme, verstehe ich, Ihre Frage, dass Sie mehrere Konten mit jeweils ihrem eigenen Satz von Tags, die zu jedem Modell in der Anwendung angewandt werden könnten, dass Anrufe acts_as_taggable. Folgendes sollte das tun, was Sie wollen.

Sie können die folgenden Anwendungssteuerung in den die Sub-Domain für alle Aktionen zugänglich zu machen.

class ApplicationController < ActionController::Base

  before_filter :getSubdomain

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

Angenommen, Sie einen Tag eine Sub-Domain verknüpfen einige, wie in Ihrer Datenbank haben, können Sie einen benannten Bereich erstellen. Dieses Beispiel geht davon aus, dass die Sub-Domain ein Benutzername und Ihr Tagging Modell gehört zu einem Benutzer, dann können Sie einen benannten Bereich auf Ihrem Tag-Modell die Sub-Domäne diejenigen relevant nur wählen verwenden.

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

Dann Tags auf Beiträge abzurufen, die vom Benutzer mit der Sub-Domain zugeordnet erstellt wurden: Posts.tags.find_by_subdomain(@subdomain)

Hinweis: Sie werden das Tag-Modell durch Akte-as-markierbare-on-Steroiden versorgt erweitern müssen, um die folgenden hinzuzufügen.  - Eine Spalte jeden Tag auf ein Konto zu verknüpfen.  - Die Einzigartigkeit Validierung Umfang auf Rechnung. mehr Konten ermöglichen, die gleichen Tags zu haben.

Andere Tipps

Wenn Konto ist ein Modell für Sie, Sie Konto des markierten Objekts als Eigentümer festlegen. Dokumentation: https://github.com/mbleigh/acts-as-taggable -on # tag-Eigentum

Und dann Konto bittet um das Objekt zu markieren. Dann alle Tags zu finden, können Sie den Besitzer fragen al e-Tags oder Markierungen zu erhalten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top