2011-05-02 40 views
1

我有一個'代碼塊',對數據執行計算並根據這些計算更新一些表。如何從控制器/模型內部運行標準塊代碼?

我希望能夠引用的代碼塊從多個位置,這樣的事情:

# from controller or model 
def ... 
    ... 
    run `chunk of code` 
    ... 
end 

這是一個不相稱簡單的問題 - 哪裏會chunk of code去,我怎麼會得到的Rails從控制器/模型運行它?

回答

1

計算或表更新屬於一個模型,那麼在模型中如何定義一些新的類方法呢?

def self.calculate 
    ... 
    chunk of code 
    ... 
end 

它可從模型和控制器

+0

def calculate chunk of code end 

然後將其從模型/控制器調用它怎麼叫?你真的可以寫'self.calculate'嗎? – sscirrus 2011-05-02 23:33:06

+0

我試過'self.calculate',但是我無法從模型中調用它。定義'calculate'確實有效,請參閱上面的答案。 – sscirrus 2011-05-03 04:23:10

+0

不,self.method_name表示類方法(類似於Java中的靜態方法),您可以通過Model.calculate調用它。例如。如果你有Car模型,並且在這個模型中定義了self.calculate,那麼你幾乎可以從任何地方調用Car.calculate ...如果你定義了沒有self關鍵字的calculate方法,它的對象的方法,而不是class ...希望這有助於 – bender 2011-05-03 10:21:44

1

我做管理也被當時稱爲:

def some_other_action 
    ... 
    @record.calculate (or self.calculate in model) 
    ... 
end 
相關問題