2014-01-31 3 views
2

Я строю API на основе Sinatra, и я вижу некоторые странные ответы для моей модели User. Каждый ответ возвращает коллекцию, полную нулевых значений. Другие модели возвращаются, как ожидалось.Почему to_json возвращает нулевые значения?

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: "[email protected]", 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}" 
+0

Что происходит, когда вы 'u = User.find (1)' 'u.to_json' do? –

+0

То же, что и User.find (1) .to_json. Все нули. –

ответ

1

Забыл У меня были методы доступа к атрибутам в пользовательской модели. После их настройки я получаю значения, которые я ожидал.

+0

Можете ли вы уточнить? У меня нет методов доступа к атрибутам, и мой .to_json возвращает мой аватар_url, даже если значение равно null –

Смежные вопросы