JSONにレンダリングするための任意の属性を設定したい。
私はこの質問の答えに従っていました: how to append data to json in ruby/rails? する
model = Model.find
model[:extra_info] = "More detail."
model.to_json
それは完全に機能しますが、私のテストでは、任意の属性の設定がサポートされなくなったという非推奨の警告が表示されます。attr_writer を使用してください。
使ってみた
model.write_attribute(:extra_info, "More detail.")
これは単体テストでは機能しますが、サーバー上では例外が発生します。
private method `write_attribute' called for Model
これを行う非推奨のクリーンな方法は何ですか。
Add virtual attribute to json outputのようにメソッドを使用して JSON 呼び出しで設定できることは承知していますが、この場合、追加される変数はモデルの問題の一部ではないため、データにアクセスできません。余分な属性を構築する必要があり、そうするのは厄介で面倒です。
では、JSON が適切にレンダリングされるように、コントローラがこのデータをモデルにプッシュする正しい方法は何でしょうか?