Вложенный Запрос Rails ActiveRecord Не Возвращает Все Объекты

#ruby-on-rails #activerecord #include

Вопрос:

Я предполагаю, что это довольно простая проблема синтаксиса, но, похоже, не может ее решить.

У меня есть запрос, который возвращает вложенный объект JSON. В своем нынешнем виде он не возвращает «кредиты».

 user_data['harvests'] = @harvests.to_json(include: [ :user_public_data, :awards, comments: {include: :user}, credits: {include: :user} ])
 

Однако, если я изменю порядок «кредитов» и «комментариев», он не вернет «комментарии». В чем здесь проблема?

 user_data['harvests'] = @harvests.to_json(include: [ :user_public_data, :awards, credits: {include: :user}, comments: {include: :user} ])
 

Ответ №1:

Трудно найти документацию по этому вопросу, но я нашел решение, используя as_json, а не to_json.

 user_data['harvests'] = @harvests.as_json(include: {user_public_data: {}, awards: {}, comments: {include: :user}, credits: {include: :user} }