has_many & has_oneの関係をJSONレンダリングに含める方法はすでにわかっています。私はそうするときに特定の属性を除外する方法を知っています。知らない人のためにここで良い記事です:レールオブジェクトの関係とJSONレンダリング
Rails Object Relationships and JSON Rendering
しかし、私は何をするのか分からないが、私は再宣言する必要はありませんので、それは子オブジェクトにas_jsonを使用していていますそれはすべての親の関係上です。
私はこのような何か...
class Customer < ActiveRecord::Base
has_many :orders
def as_json(options={ })
super({ :except => :Password, :include => [:orders] }.merge(options))
end
end
class Order < ActiveRecord::Base
has_one :customer
def as_json(options={ })
super({ :include => [:customer] }.merge(options))
end
end
を持っているのであればそれはあなたの注文の観点からそれを見たときにお客様のパスワードを返送してしまいます。
理想的にはモデルで定義されているas_jsonのルールに従ってほしいので、すべての子オブジェクトにcustomerを含めるために例外を置く必要はありません。
P.S. - これは現実世界のシナリオではない例です。
rablを使用してどのように出力を動的に変更しますか?ときには、誰がデータを要求しているかに基づいてjsonで返される内容を変更したいことがあります。 – Altonymous
通常と同じRuby構文を使用します(つまり、if文と 'unless'文)。 – iwasrobbed