Как передать параметры из контроллера в сериализатор в FastJsonAPI? - PullRequest
0 голосов
/ 18 марта 2019

У меня есть метод контроллера drop_down_values, в котором я выбираю набор значений и отвечаю в json, создавая объект с помощью сериализатора.Я использую FastJson Api.Я хочу знать, как я могу получить доступ к другим переменным, присутствующим в контроллере в сериализаторе.

def drop_down_values   
    @drop_down_values = IndustrySectorList.all
    @values = @drop_down_values.pluck(:industry_sector)
    render json: DropDownValueSerializer.new(@drop_down_values).serialized_json
end

Мне нужно использовать переменную @values в сериализаторе.Как я могу передать это сериализатору?Я не могу напрямую получить доступ к этой переменной в сериализаторе.

Сериализатор:

class DropDownValueSerializer
  include FastJsonapi::ObjectSerializer
  attributes :id
  end

Стек и версия -

  1. Rails - 5.2.1
  2. Ruby - 2.5.1
  3. FastJsonAPI - 1.5

Ответы [ 2 ]

0 голосов
/ 18 марта 2019

Я не совсем уверен, что вы пытаетесь сделать, но сериализатор обычно является ресурсом.В вашем случае вы можете передать параметры в ваш выпадающий сериализатор:

DropDownValueSerializer.new(movie, {params: {values: @values}})
class DropDownValueSerializer
  include FastJsonapi::ObjectSerializer
  attributes :id

  attribute :values do |drop_down_value, params|
    params[:values]
  end

end

0 голосов
/ 18 марта 2019

Как я вижу, вы должны использовать сериализованный метод следующим образом: render json: DropDownValueSerializer.new(@drop_down_values).serialized_json

...