2013-03-09 34 views

回答

6

application_controller將成爲該地點。如果對於模型,也許你可以寫在模塊中,那麼 包含在你想要使用的模型中。

0

您也可以創建一個單獨的模型,而不需要繼承ActiveRecord::Base並在該特定模型中定義您的csv方法。而從任何控制器只需要調用

model_name.method_name(parameters) 

例如,在模型CsvDB:

class CsvDB 
    def export(parameters) 
    # your csv logic goes here 
    end 
end 

從任何控制器只需要調用

CsvDB.export(parameters) 
0

1)儘量的ActiveRecord :: Base的的monkeypatching。 的初始化目錄是收集所有這些小任務

所以,儘量/config/initializers/active_record_extension.rb一個最好的地方,

class ActiveRecord::Base 
    def self.export(parameters) 
    #your csv logic goes here 
    end 
end 

2)創建主類,這是用於所有active_record模型

例如/models/your_class.rb

class YourClass < ActiveRecord::Base 
    def self.export(parameters) 
    #your csv logic goes here 
    end 
end 

class CsvDB < YourClass 
end 
繼承
+0

@Mischa是的,這很好。但是如果我們使用monkeypatch,則不需要手動將模塊包含/擴展到所有模型 – 2013-03-29 07:20:44

相關問題