現在、Rails アプリの API に属性を取り込もうとしています。使用例は単純です。私はユーザーモデルを持っています:
class User < ActiveRecord::Base
attr_accessible :email
end
基本的にユーザーをイベントにリンクする別のモデルがあります。
class UserEvent < ActiveRecord::Base
belongs_to :user
belongs_to :event
end
JSON または XML としてアクセス可能な API を介して UserEvent モデルを使用して、イベントに関連するすべてのユーザーを一覧表示できるようにしたいと考えています。また、UserEvent の電子メールが XML と JSON ダンプの両方に表示されるようにしたいと考えています。
この質問は、serialiable_hash をオーバーライドできることを示唆しています。to_xml では serializable_hash が使用されていないように見えるため、これは JSON に対してのみ機能するようです。
私が調査した別のアプローチは、クラスの属性メソッドをオーバーライドすることでした。
class UserEvent < ActiveRecord::Base
def attributes
@attributes = @attributes.merge "email" => self.email
@attributes
end
end
これは JSON ではうまく機能しますが、XML バージョンを試すとエラーがスローされます。
undefined method `xmlschema' for "2011-07-12 07:20:50.834587":String
この文字列は、オブジェクトの「created_at」属性であることがわかりました。したがって、ここで操作しているハッシュで何か間違ったことをしているようです。