Я пытаюсь управлять рендерингом JSON пользовательского объекта в Rails 3.0.2. Вот соответствующий код модели:
class User < ActiveRecord::Base
belongs_to :employer
has_and_belongs_to_many :roles
def as_json(options={})
super(options.merge(:include => [:employer, :roles]))
end
end
Вот JSON-представление, которое я получаю:
{"user":{"employer":{},"roles":[{},{},{}],"email":"user.user@example.com"}}
Этот пользователь имеет три роли, поэтому оператор :include
каким-то образом ищет связь, но объекты роли и работодателя не преобразуются в JSON.
Если бы у меня была as_json
для любой из этих моделей, возвращая мусор, он все равно не появляется.
Я что-то не так делаю, или это ошибка? (Он ничего не рендерил для ассоциаций, пока я не обновил Rails 3.0.0, что я научился делать из этого вопроса .)