2011-09-11 38 views
0

我有一系列的方法,具有類似的結構和共用公共參數:導軌的before_filter與從方法參數

  • DEF存款(量)

  • DEF轉移(量,至)

  • DEF退(量)

我想的cHEC k如果在調用這些動作之前餘額大於金額。否則,我不得不在每種方法中重複使用check_balance

有沒有一種方法可以讓用戶before_filter調用check_balance(金額)與從我想要應用的方法傳遞的金額?

謝謝。

回答

0

看起來你並不是真的在尋找一些before_filter,因爲你想傳遞參數(除非直接從params獲取參數,但是這樣的語法將會是錯誤的)。

在你控制器

private 
def check_balance amount 
    # whatever you need 
end 

的電話這是你在你的行動

def index 
    #some code 
    check_balance(current_amount) 
    #other code 
end 

需要,但你肯定這種代碼是沒有直接關係,您應該創建一個新方法模型?如果是這樣,它應該在模型本身內重構。

+0

對不起,關於參數和方法參數之間的混淆。你雖然正確理解我的問題。我知道我可以在每種方法上調用check_balance。我只是想知道是否有一種方法可以避免多次重複同一個呼叫。 – AdamNYC

+0

因爲呼叫不是在行動之前或之後進行的,所以沒有辦法避免重複。無論如何,代碼是非常可讀和可測試的,所以我看不到任何架構默認。 – apneadiving

+0

這就是我正在尋找的答案。謝謝。 – AdamNYC