1

我有一个控制器方法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. 导轨 - 5.2.1
  2. 红宝石 - 2.5.1
  3. FastJsonAPI - 1.5
4

2 回答 2

5

我不太确定您要做什么,但序列化程序通常是一种资源。在您的情况下,您可以将参数传递到您的下拉序列化程序中:

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

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

end

于 2019-03-18T15:49:30.400 回答
0

如我所见,您应该使用这样的序列化方法: render json: DropDownValueSerializer.new(@drop_down_values).serialized_json

于 2019-03-18T13:12:59.643 回答