2010-09-23 61 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