我有一个rails作用域,它获取表的第一条记录并对@变量进行分析。它返回单个对象或空活动记录关系。我的问题是,我使用一个自定义序列化程序来呈现json,但是如果作用域返回一个空的活动记录关系,除非我使用read_attribute_for_serialization,否则我会得到“活动记录未定义方法each_serializer”,但是如果该作用域返回一个对象,我必须使用序列化程序来呈现它:有什么方法可以解决这个问题而不这样做:
if @variable.blank?
  render json: @variable, each_serializer: CustomSerializer
else
  render json: @variable, serializer: CustomSerializer
end更新
我必须从产品表中得到最新的记录。所以我定义了这样一个范围:
scope :last_by_period, -> { order('period desc').first }因此,如果我的db中没有产品记录,这个作用域返回一个空的活动记录关系。
发布于 2016-08-31 01:33:14
一个对象或一个空的活动记录关系
我想这就是问题所在。我觉得你应该
对于第一个选项,您可以始终使用each_serializer。对于第二个选项,您可以始终使用serializer。
https://stackoverflow.com/questions/39239310
复制相似问题