Включение атрибута «type» в json response_with Rails 3.1

Кажется, что при возврате объекта, содержащего атрибут "type", в виде JSON из приложения Rails 3.1, атрибут "type" не включается. Предположим, у меня есть следующее:

Модель с соответствующей таблицей STI Animal. Модели Cat, Dog и Fish, наследующие Animal.

При возврате Animal через JSON я хочу включить столбец «type», но этого не происходит:

jQuery.ajax("http://localhost:3001/animals/1", {dataType: "json"});

дает:

responseText: "{"can_swim":false,"created_at":"2012-01-20T17:55:16Z","id":1,"name":"Fluffy","updated_at":"2012-01-20T17:55:16Z","weight":9.0}"

Похоже, это проблема с to_json:

bash-3.2$ rails runner 'p Animal.first.to_yaml'
"--- !ruby/object:Cat\nattributes:\n  id: 1\n  type: Cat\n  weight: 9.0\n  name: Fluffy\n  can_swim: false\n  created_at: 2012-01-20 17:55:16.090646000 Z\n  updated_at: 2012-01-20 17:55:16.090646000 Z\n"

bash-3.2$ rails runner 'p Animal.first.to_json'
"{\"can_swim\":false,\"created_at\":\"2012-01-20T17:55:16Z\",\"id\":1,\"name\":\"Fluffy\",\"updated_at\":\"2012-01-20T17:55:16Z\",\"weight\":9.0}"

Кто-нибудь знает причины такого поведения и как его переопределить?

11
задан cyrusd 20 January 2012 в 18:03
поделиться