Rails 仅将模型的嵌套关联中的某些字段呈现为 json

Rails rendering only certain fields in nested associations of a model as json

我正在构建一个 API,它有一个工作室(电影),一个工作室有电影,电影有角色,也有流派。我已经构建了所有模型,它们似乎按预期工作。现在我正在尝试在我的 MoviesController 中构建所有电影的 GET(索引),但我遇到了问题。

我的 MoviesController 如下:

class MoviesController < ApplicationController
def index
    render json: Movie.all, only: [:title, :date_released, :score], include: [:studios, :characters]
end
end

这样我就可以将我所有的电影渲染为 json,而且我只得到字段标题、date_released 和分数,还可以渲染相关字段 Studio 和 Characters。我的问题是工作室和角色完全渲染自己(id、名称、created_at、updated_at)。我只想呈现 Studio 的名称和角色名称,而不是它们的 ID 或创建日期。我一直没有成功地将相同的“仅:[名称:]”应用于工作室或角色。我怎样才能做到这一点?

感谢您的帮助。如果您对如何改进我的代码有任何建议,请说出来。

试试这个

render :json => Movie.all, only: [:title, :date_released, :score], include: {studios: {only: :name}, characters: {only: :name}}