0

ネストされた子オブジェクトのいくつかのレベルを持つモデル オブジェクトの Rails アプリのビューの json をレンダリングしています。最初は、モデル オブジェクトから何かを追加/変更/名前変更する必要がなかったので、to_json で十分でした。ただし、モデル オブジェクトにはない URI を json に (ネストされた子オブジェクトの一部に対して) 挿入する必要があります。私はRABLの使用を検討していますが、これまで見てきたことから、デフォルトのto_json動作をオンにしたいオブジェクトのフォーマットをさらに多く指定する必要があるように見えます.いくつかの子オブジェクトに URI を追加できるポイント。私が思うことオブジェクトのグラフで to_json を使用し、特定のタイプのオブジェクトのみを別の方法で処理する必要があることを指定できる方法が必要です。誰かがRABLで似たようなことをしたり、より良いアプローチを完全に知っていますか?

4

1 に答える 1

1

モデルで as_json をオーバーライドして、余分なものを追加できます。

例えば

def some_url
    "http://google.com"
end



def as_json(options={})
    options = User.json_options(options)
    super(options)
end

def self.json_options(options = {})
    options ||= {} # need this because to_json without options will pass nil to as_json
    options[:methods] ||= []
    options[:methods] << :some_url
    options
end

次に、to_json を呼び出すと、メソッドが含まれます。

于 2012-04-12T15:08:11.287 に答える