2017-08-03 5 views
0

http://api.rubyonrails.org/の下の使用法の説明がhttp://guides.rubyonrails.orgの代わりにあるのだろうかと思います。`render json:@ user`のような用法のAPIドキュメントはどこですか?

render json: @user 

これを言及page in Rails Guideがあるが、それは例えば、:includeのような他の利用可能なオプションをカバーしていない:

render json: @user, include: { blog: { only: [:name, :permalink]} } 

私は、このような共通APIが正式に見つけるのは難しいです信じることができませんAPIドキュメント。

+0

[ActiveModelSerializers](https://github.com/rails-api/active_model_serializers)を使用していますか?レンダリング中に[includeオプション](https://github.com/rails-api/active_model_serializers/blob/0-10-stable/docs/general/adapters.md#include-オプション)が表示されていますが、私はループから外れているかもしれませんが、それは私がAJAX要求のための 'JSON'レスポンスを返す場合に便利です。 –

+0

コントローラ内のオブジェクトのデバッグにも使用します – uzaif

+0

@SimpleLimeいいえ、私のGemfile.lockにはactive_model_serializersがありません。 –

答えて

0

これは、おそらくas_jsonメソッドを使用しているからでしょう。だから、renderメソッドはas_jsonオプションに厳密に関連していない

https://apidock.com/rails/ActiveModel/Serializers/JSON/as_json

:を参照してください。あなたは上記のリンクに向かう必要があります。

0

少し周り掘って、addに新しいものが述べActionController::Renderers documentationが見つかりました:

はレンダラを作成するには、名前とブロックを渡します。ブロックは2つの引数を取ります。最初はキーとペアになった値で、2番目はレンダリングに渡されたオプションの残りのハッシュです。彼らは:jsonレンダラを作成するときに見ることができるview it's source on GitHubその後、

とあなたであれば、彼らはありません:

add :json do |json, options| 
    json = json.to_json(options) unless json.kind_of?(String) 
    ... 
end 

ので、Railsは、ちょうど「それと対になって値がキーだ」にto_jsonを呼んでいる(ました@userrender json: @user)は、renderコールに渡されたすべてのエキストラ(この場合はinclude)を渡します。

あなたはincludeオプションが何をしているかを知りたいのであれば、あなたはその後、その後、単にオブジェクトにas_jsonを呼び出し、に変換しますActiveSupport::JSON::Encoding::JSONGemEncoder#encodeに委譲するだけの種類ActiveSupport::JSON.encodeを呼び出す@user.to_json方法を、チェックする必要があります文字列。

関連する問題