Я не знаю, что такое лучшая практика, но в моем случае я бы сделал 1, 2 и 3 в одном методе класса в модели.Я бы создал метод модели, который принимает имя базового XML-файла.
Так что я бы сделал что-то вроде этого ...Я все еще новичок в Rails)
# app/models/mymodel.rb
class MyModel < ActiveRecord::Base
# ...
def self.formatXml(xml_base)
dataRecords = MyModel.find(:whatever) # step 1
# open the XML and read it into a string, this is step 2
# take the XML string, do the appropriate gsubs
return my_xml_string;
end
end
# app/controllers/mycontroller.rb
class MyController < ActionController::Base
# ...
def myAction
formattedXml = MyModel.formatXml(whateverXmlFileName)
render :text => formattedXml
end
end