2010-08-25 74 views
0

我回到RoR後沒有使用它幾年,我試圖用ActiveModel序列化一個普通的對象到XML。Rails 3 ActiveModel :: Serializer似乎需要大量的支持方法

我做以下,按照該意見在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 (undefined method `model_name' for XmlError:Class):

app/controllers/users_controller.rb:19:in `login'

app/controllers/users_controller.rb:5:in `login'

如果創建一個model_name類的方法,我再拿到FOL降低堆棧跟蹤:

NoMethodError (undefined method `element' for "XmlError":String):

app/controllers/users_controller.rb:19:in `login'

app/controllers/users_controller.rb:5:in `login'

感覺就像我在這裏追逐我的尾巴。我在課堂上錯過了一些簡單的東西嗎?我緊跟這個例子。

回答

0

爲什麼不是子類ActiveModel :: Base?

相關問題