我有一个使用acts_as_tree 的ActiveRecord 类。我正在尝试更新 to_xml 方法,以便如果调用子记录的 to_xml 它将返回嵌套在父/祖先 xml 中的 xml,以提供该资源的完全限定路径。例如,我有 Compiler,它是 Compiler/Version 的父级。编译器应呈现为 xml:
虽然编译器/版本应呈现为
我试图通过传递一个完全限定的标志来做到这一点,但它因 'Builder::XmlMarkup#to_ary should return Array' 而死
def to_xml(options={}, &block) options[:fully_qualified] ||= true options[:indent] ||= 2 options[:builder] ||= Builder::XmlMarkup.new(:indent => options[:缩进])
if options[:fully_qualified] and not parent.nil?
55: parent.to_xml(选项) 做 |foo| relative_options = options.dup relative_options[:fully_qualfied] = false relative_options[:skip_instruct] = true relative_options.delete(:builder)
foo << to_xml(relative_options)
end
else
xml = options[:builder]
xml.instruct! unless options[:skip_instruct]
66: xml.parameter(:name => name, &block) end end
该方法适用于编译器的情况,但对于编译器/版本失败:
/usr/lib/ruby/1.8/builder/xmlbase.rb:133:in method_missing'
/usr/lib/ruby/1.8/builder/xmlbase.rb:133:in
call' /usr/lib/ruby/1.8/builder/xmlbase.rb:133:in _nested_structures'
/usr/lib/ruby/1.8/builder/xmlbase.rb:57:in
method_missing' app/models/parameter.rb:66:在to_xml'
app/models/parameter.rb:55:in
to_xml'