想要覆盖我应用中所有内容的to_xml方法,并且遇到困难。
原因很简单,我需要摆脱:默认情况下的缩进格式。我听说过“这是一个视图”问题的论点,我应该在我需要它的模型中覆盖to_xml。
问题是我以编程方式返回此内容并且:skip_types set使我的回答不正确。当你有一个空数组时它们是不正确的,你最终得到: \ n 突然间,这是客户端读取的字符串值\ n(<<<<<<<<<<<<<<<<<<<<<<<<我也不喜欢在30个地方重写同样的事情。
那说,修复很简单,我似乎无法把它放在正确的位置。只是寻找帮助放在哪里。第二组眼睛也会受到赞赏。
我的解决方法是
alias __old_to_xml to_xml
def to_xml(options = {})
options.merge!(:indent => 0)
__old_to_xml(options)
end
答案 0 :(得分:0)
我普遍同意其他人对这种方法的理解,但我认为你可以通过向配置/初始化程序添加一个文件来修补它:
module ActiveRecord::Serialization
alias __old_to_xml to_xml
def to_xml(opts={})
__old_to_xml opts.merge(:indent => 0)
end
end
如果您使用的是Rails 3,我相信您需要ActiveModel :: Serializers :: Xml而不是ActiveRecord :: Serialization,但不能保证。