我有一个像这样的自定义错误类:
class EntityCrudError < StandardError
attr_reader :action
attr_reader :modelName
attr_reader :entity
attr_reader :errors
def initialize(action, model, entity = nil)
@action = action
@model = model
@entity = entity
@errors = entity.respond_to?(:errors) ? entity.errors : nil
end
end
我在 Sinatra Web 应用程序中使用它。发生错误时,我以 JSON 格式发送此对象的一个实例:
myError.to_json
此to_json
方法是ActiveSupport 的实现。
但是,消息不在 JSON 对象中,因为它不是实例变量。我的 JSON 对象中需要该消息。我有两个想法可以做到这一点,但它们都不起作用......
- 使消息成为 中的实例变量
initialize
,但它似乎还不存在。 - 将消息合并到 JSON 对象中,但我不知道如何合并它。
两者中哪一个是最好的,我该如何实施?