J'essaie de créer ActiveResource
objets pour trois objets dans une application interne.Comment utiliser ActiveResource avec un schéma d'URL personnalisé?
Il y a Tag
s, Tagging
s et Taggable
s:
http://tagservice/tags/:tag
http://tagservice/taggings/:id
http://tagservice/taggables/:type/:key
Tag
« s :tag
est l'URL codé texte de balise littérale. :id
est un entier auto-incrémenté. Taggable
:type
est une chaîne de caractères. Il n'y a pas d'ensemble fini de types de taggable - le service peut supporter n'importe quoi. Taggable
:key
est le champ ID que le service pour ce type de Taggable
attribue. Il peut s'agir d'une valeur commerciale, comme le nom d'utilisateur d'un employé, ou simplement d'un entier auto-incrémenté.
Si ceux-ci étaient des objets ActiveRecord
, je les code quelque chose comme ceci:
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
Est-ce que quelqu'un sait ce que ces classes aimeraient comme dans ActiveResource
? Merci!
Est-ce que ma réponse a aidé? Si oui, pouvez-vous l'accepter s'il vous plaît? :) Si non - laissez-moi savoir ce que vous avez finalement fait. –