2014-05-02 34 views
0

編輯表單完美地工作。我想在編輯配置文件後調用方法[通知我們它已被編輯]。這樣做的正確方法是什麼?Rails資源 - 在提交編輯表單後調用方法

路線

有很多條路線,但是..我不知道他們是必要的信息

resources :profiles 

..

控制器

# GET /profiles/1/edit 
    def edit 
    end 

    def call_this_after_edit_is_clicked 
    ... 
    end 
+1

當'edit'表單提交時,將會調用邏輯'update'動作。您可以在'update'操作中調用'call_this_after_edit_is_clicked'。另外,'edit'動作只會呈現'edit'視圖。你試過什麼了?分享一些相關的代碼。 –

+0

非常感謝@KirtiThorat! – bezzoon

回答

2

有三種方法來做到這一點(和額外的信貸第四):

在行動結束時調用您的方法。這很簡單,但它確實讓你的控制器操作有點混亂。使用after action。如果您需要在多個控制器操作後調用此方法,這很方便。

after_action :call_this_after_edit_is_clicked, only: :update 

移動代碼到模型與after_update callback。這使得代碼可以在模型更新的任何時候運行,而不僅僅是當這個特定的控制器用於更新時。這可能是也可能不是你想要的。

class ModelClass < ActiveRecord::Base 
    after_update :call_this_after_edit_is_clicked 

    # ... other stuff ... 
end 

對於額外的信用,使用前三個中的一個安排您的代碼使用ResqueDelayed Job或或類似)後臺任務。如果你的額外方法要做一些緩慢的事,這就是你想要去的路線。如果您要發送通知郵件或更新數據庫中的一堆標誌,請執行此操作。

相關問題