Я возвращаюсь в RoR после того, как не использовал его в течение нескольких лет, и я пытаюсь использовать ActiveModel для сериализации простого объекта в XML.
Я делаю следующее согласно комментариямв activemodel / lib / activemodel / serialization.rb:
class XmlError
include ActiveModel::Serializers::Xml
attr_accessor :code
attr_accessor :description
def attributes
@attributes ||= {'code' => 'nil', 'description' => 'nil'}
end
def initialize(error_code)
@code = error_code
@description = "blah"
self
end
end
Я использую это в контроллере как:
render :xml => XmlError.new("invalid_login")
и получаю следующую трассировку стека:
NoMethodError (неопределенный метод `имя_модели 'для XmlError: Class):
app / controllers / users_controller.rb: 19: в` login'
app / controllers / users_controller.rb:5: в `login '
Если создать метод класса model_name
, я получу следующую трассировку стека:
NoMethodError (неопределенный метод` element' для "XmlError": String):
app / controllers / users_controller.rb: 19: в` login '
app / controllers / users_controller.rb: 5: в `login'
Такое чувство, что я гоняюсь за своим хвостом здесь.Я только что пропустил что-то простое в своем классе?Я внимательно следовал примеру.