首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >活动记录未定义方法read_attribute_for_serialization

活动记录未定义方法read_attribute_for_serialization
EN

Stack Overflow用户
提问于 2016-08-31 01:14:58
回答 1查看 2.1K关注 0票数 5

我有一个rails作用域,它获取表的第一条记录并对@变量进行分析。它返回单个对象或空活动记录关系。我的问题是,我使用一个自定义序列化程序来呈现json,但是如果作用域返回一个空的活动记录关系,除非我使用read_attribute_for_serialization,否则我会得到“活动记录未定义方法each_serializer”,但是如果该作用域返回一个对象,我必须使用序列化程序来呈现它:有什么方法可以解决这个问题而不这样做:

代码语言:javascript
运行
复制
if @variable.blank?
  render json: @variable, each_serializer: CustomSerializer
else
  render json: @variable, serializer: CustomSerializer
end

更新

我必须从产品表中得到最新的记录。所以我定义了这样一个范围:

代码语言:javascript
运行
复制
scope :last_by_period, -> { order('period desc').first }

因此,如果我的db中没有产品记录,这个作用域返回一个空的活动记录关系。

EN

回答 1

Stack Overflow用户

发布于 2016-08-31 01:33:14

一个对象或一个空的活动记录关系

我想这就是问题所在。我觉得你应该

  • 总是返回一个集合。单个对象或空集合的集合
  • 返回单个对象或零

对于第一个选项,您可以始终使用each_serializer。对于第二个选项,您可以始终使用serializer

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39239310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档