2014-08-31 97 views
0

我得聲明,像這樣一個自定義異常類:無法訪問自定義異常屬性

class CustomError < StandardError 
    def initialize(message = nil) 
    @message = message 
    @type = "custom_error" 
    end 
end 

這是我的應用程序控制器正在處理,像這樣:

rescue_from CustomError do |e| 
    render json: e.type 
end 

現在時,我提出用raise CustomError.new("Oops I did it again")我得到一個NoMethodError未定義的方法`型」

這是怎麼回事例外呢?爲什麼我不能使用e.type訪問type

回答

1

你不能叫e.type因爲你還沒有定義的type方法。

您可以使用

attr_reader :type 

要添加這樣的訪問。