Ruby on rails 生成器::XmlMarkup使用

Ruby on rails 生成器::XmlMarkup使用,ruby-on-rails,ruby,xml,refactoring,Ruby On Rails,Ruby,Xml,Refactoring,我使用的::Builder::XmlMarkup如下所示: # This is a class method in /lib, run ascynchronously using delayed_job. # Bunch of file io / header stuff, then... books.each do |book| xml.Product do xml.RecordReference "com.domain-#{book.id}"

我使用的::Builder::XmlMarkup如下所示:

 # This is a class method in /lib, run ascynchronously using delayed_job. 
 # Bunch of file io / header stuff, then... 
 books.each do |book|
        xml.Product do
          xml.RecordReference "com.domain-#{book.id}"
          xml.NotificationType book.notification unless book.notification.blank?
          xml.ProductIdentifier do
            xml.ProductIDType "15"
            xml.IDValue book.isbn unless book.isbn.blank?
          end
          book.productcodes.each do |productcode|
            unless productcode.idtype == "15"
              xml.ProductIdentifier do
                xml.ProductIDType productcode.idtype unless productcode.idtype.blank?
                xml.IDValue productcode.idvalue unless productcode.idvalue.blank?
              end
            end
          end
          xml.ProductForm book.format unless book.format.blank?
          xml.ProductFormDetail book.format_detail unless book.format_detail.blank?
          xml.ProductFormDescription book.format_description unless book.format_description.blank?
等等。问题是,它还会继续运行250条线路。这就是构建包含比特元素的XML文件的方法吗?它看起来不太红