ActiveResource
内部アプリケーションで3つのオブジェクトのオブジェクトを作成しようとしています。
Tag
s、Tagging
s、およびTaggable
sがあります。
http://tagservice/tags/:tag
http://tagservice/taggings/:id
http://tagservice/taggables/:type/:key
Tag
's:tag
は、URLエンコードされたリテラルタグテキストです。 Tagging
の:id
は自動インクリメントされた整数です。 Taggable
の:type
は文字列です。タグ付け可能なタイプの有限のセットはありません-サービスは何でもタグ付けをサポートできます。 Taggable
'sは、そのタイプのサービスが割り当てる:key
IDフィールドです。Taggable
これは、従業員のユーザー名のようなビジネス価値、または単に自動インクリメントされた整数である可能性があります。
これらがActiveRecord
オブジェクトの場合、次のようにコーディングします。
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
それらのクラスが何を望んでいるのか誰かが知っていますActiveResource
か?ありがとう!