2017-10-16 13 views
0

複数のモデルをチェーンでレンダリングして、レールにJSONオブジェクトとしてレンダリングする方法を教えてください。マイルストーン: は現在、私は、私は、このJSONオブジェクトに私は関連するモデルを含めることを得る別のモデルを追加したいJSONをレールにレンダリングする際のモデルの連結

render json: current_user.role.selected_bids.to_json(include: [:project => {include: [:milestones , :skill_category] } ]) 

のようなレンダリング文を持っています。このようなもの

render json: current_user.role.selected_bids.to_json 
(include: [:project => {include: [:milestones=> {include: [:timetrackers]}, 
:skill_category]}]) 

ただし、構文エラーが発生します。このネスティングレベルを実行することは可能ですか、別のAPI呼び出しを行う必要がありますか?

+0

シリアライザを使用して、jbuilderやjbuilderなどのビューベースのソリューションを構築できます。 – Anton

+0

大丈夫ですが、ここに関連付けを含めることはできませんか? – BigDaddy

+0

https://apidock.com/rails/ActiveRecord/Serialization/to_json最後のブロックを確認してください。 "第2レベルと高級協会も同様に働きます" – Anton

答えて

1

構文エラーが発生する理由は、Arrayの作成に使用する構文を使用してHashを作成しようとしているためです。代わりに、次のようにすることができます。

render json: current_user.role.selected_bids.to_json(
    include: [ 
    project: { 
     include: [ 
     { 
      milestones: { 
      include: [:timetrackers] 
      }, 
     }, 
     :skill_category 
     ] 
    } 
    ] 
) 
+0

「マイルストーン」キーを中括弧の中にラップして、そのハッシュを示す方法に注目してください。 – bitsapien

関連する問題