Я хочу установить поля со значением, передаваемым через URL. Например, прямо сейчас я могу это сделать:Параметр передающих полей для AMS JSONAPI serializer
def index
authors = Author.all
render json: authors, include: params[:include], fields: {authors: [:id], posts: [:title]}
end
И это работает именно так, как я этого хочу. Он возвращается только с идентификатором автора и названием своих сообщений. То, что я хотел бы сделать что-то вроде этого:
def index
authors = Author.all
render json: authors, include: params[:include], fields: params[:fields]
end
И это будет делать то же самое, как и раньше, когда я использую этот URL: http://localhost:3000/authors?include=posts&fields[author]=[id]&fields[posts]=[title] Однако, когда я делаю, что я получаю все поля на авторов и все поля в сообщениях.
Вот мои сериализаторы для справки:
class AuthorSerializer < ActiveModel::Serializer
attributes :id, :name
has_many :posts
end
class PostSerializer < ActiveModel::Serializer
attributes :id, :title, :text
belongs_to :author
has_many :comments
end