【问题标题】:Why is to_json returning null values?为什么 to_json 返回空值?
【发布时间】:2014-02-24 20:31:23
【问题描述】:

我正在构建一个基于 Sinatra 的 API,但我看到我的用户模型有一些奇怪的响应。每个响应都会返回一个包含空值的集合。其他模型按预期返回。

irb(main):018:0> User

=> User(id: integer, email: string, username: string, created_at: datetime, updated_at: datetime)


irb(main):019:0> User.find(1)

D, [2014-01-31T18:31:38.488743 #50624] DEBUG -- :   User Load (0.1ms)  SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1  [["id", 1]]

=> #<User id: 1, email: "test@example.com", username: "tyler", created_at: "2014-01-30 01:55:16", updated_at: "2014-01-30 01:55:16">


irb(main):020:0> User.find(1).to_json

D, [2014-01-31T18:32:18.079096 #50624] DEBUG -- :   User Load (0.1ms)  SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1  [["id", 1]]

=> "{\"id\":null,\"email\":null,\"username\":null,\"created_at\":null,\"updated_at\":null}"

【问题讨论】:

  • 当你 u = User.find(1) u.to_json 这样做时会发生什么?
  • 与 User.find(1).to_json 相同。全部为空。

标签: ruby json activerecord sinatra to-json


【解决方案1】:

忘记了我在 User 模型上有属性访问器方法。调整后,我得到了我期望的值。

【讨论】:

  • 您能详细说明一下吗?我没有属性访问器方法,即使值为 null,我的 .to_json 也会返回我的 avatar_url
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多