Railsは関連するオブジェクトを返さないメソッドを表示します

私は:throughのアプローチを使って別のものへの参照を持つオブジェクトを持っています。

"show"メソッドを実行すると、オブジェクトの詳細は返されますが、関連付けられたオブジェクトは返されません。私はfindのオブジェクトを以下のように含めてみました:

@recipe = Recipe.includes(:quantities).find(params[:id])

しかし役に立たない。

コードをデバッグして

@recipes.quantities

私は正しいセットが返されますが、セットはデフォルトでjsonで返されません。どのように私はそれを行うことができますか?

0
多かれ少なかれはい。 @recipeを使用して数量の関連付けはjsonで戻されません
追加された 著者 Ger,
うん、私は関連するオブジェクトを個別に渡すことができますが、ただ1つのオブジェクトを関連するオブジェクトで完成させて送信するといいでしょう。
追加された 著者 Ger,
あなたの質問を明確にする:あなたが求めるのは、「関連があるオブジェクトがある場合、そのオブジェクトとその関係をjsonにシリアル化する方法でオブジェクトとその関係をすべて取得するにはどうすればよいですか?あれは正しいですか?
追加された 著者 Marc Talbot,
私はそれが期待される行動だと思う。オブジェクトをjsonにシリアル化すると、そのオブジェクトはシリアル化されますが、関連するオブジェクトはシリアル化されません。オブジェクトとその関係をシリアル化することはできますが、関係オブジェクトを明示的にシリアル化することでこれを行う必要があります。
追加された 著者 Marc Talbot,

1 答え

あなたの show メソッドでは、次のようにします

def show
  @recipe = Recipe.includes(:quantities).find(params[:id])

   respond_to do |format|
     format.html
     format.json { render json: @recipe.as_json(:include => :quantities)}
   end
 end

これは実際にはRailsソースに隠されていますが、 as_json は、この質問をご覧ください。

Documentation: ActiveModel::Serializers::JSON

3
追加された
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript