Ich versuche ActiveResource
Objekte für drei Objekte in einer internen Anwendung zu erstellen.Wie verwende ich ActiveResource mit einem benutzerdefinierten URL-Schema?
Es gibt Tag
s, Tagging
s, und Taggable
s:
http://tagservice/tags/:tag
http://tagservice/taggings/:id
http://tagservice/taggables/:type/:key
Tag
‚s :tag
ist der URL-kodierten wörtliche Tag-Text. Tagging
's :id
ist eine automatisch inkrementierte Ganzzahl. Taggable
's :type
ist eine Zeichenfolge. Es gibt keine endliche Menge an Taggable-Typen - der Service kann das Taggen unterstützen. Taggable
's :key
ist das ID-Feld, das der Dienst für den Taggable
-Typ zuweist. Es könnte ein Geschäftswert sein, wie der Benutzername eines Angestellten oder einfach eine automatisch inkrementierte Ganzzahl.
Wenn diese ActiveRecord
Objekte wären, würde ich sie so etwas wie dieser Code:
class Tag < ActiveRecord::Base
has_many :taggings
has_many :taggables, :through => :taggings
def self.find_by_id(id)
find_by_name(id)
end
def to_param
CGI::escape(self.name)
end
end
class Tagging < ActiveRecord::Base
belongs_to :tag
belongs_to :taggable
end
class Taggable < ActiveRecord::Base
has_many :taggings
has_mnay :tags, :through => :taggings
def self.find_by_id(id)
find_by_type_and_key(*id.split('/'))
end
def to_param
"#{self.type}/#{self.key}"
end
end
Wer weiß, was diese Klassen wie in ActiveResource
möchten? Vielen Dank!
Hat meine Antwort geholfen? Wenn ja, kannst du es bitte annehmen? :) Wenn nicht - lassen Sie mich wissen, was Sie schließlich getan haben. –