2010-09-23 63 views
0

我有一个我想重构的控制器。这个控制器基本上呈现一个格式化的XML文档。Rails:帮助重构控制器

控制器做了4件事情。

  1. 它从数据库获取记录
  2. 它从RAILS_ROOT/config中读取静态XML文件
  3. 它通过数据库记录进行迭代,并使用DB数据gsubs的XML文档
  4. 它呈现的XML文档如:文本

我的问题是:

哪里是2/3的正确位置在Rails的FR内发生amework?在我看来,他们不应该在控制器中。

我on Rails的2.3

干杯

回答

1

我不知道最好的做法是什么,但在我的情况下,我在模型中做1,2,和3一类的方法。我会创建一个模型方法,它接受基本XML文件的名称。

所以我会做这样的事情...(警告:我不是100%确定这是语法正确的,我有点新的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 
+0

由于这看起来好 – user448157 2010-09-23 15:50:40