2010-04-01 31 views
2

定義爲before_save如下:我如何跳過Rails的before_save過濾特定命令

def before_save 
    self.token = generate_token 
    end 

我想跳過它專用的保存方法調用。所以在我的代碼我想做

@user.save 

沒有before_save過濾器被調用。我可以這樣做嗎?

回答

8

你可以這樣做:

@user.send(:update_without_callbacks) 

或者create_without_callbacks工作爲好。我已經使用了兩者,但我不知道是否有「save_without_callbacks」 無論哪種方式,請謹慎使用。

0

您也可以在您的方法中包含條件邏輯,以處理您不希望回調觸發的情況。

def before_save 
    self.token = generate_token if token.blank? 
end 

不是一個很好的例子,但你明白了。