2010-07-31 38 views
4

希望我的項目的最後一部分。髒並檢查電子郵件屬性是否更改?

需要檢查,如果user.email屬性更改。如果是這樣,那麼需要告訴mailchimp更改或添加電子郵件。

看起來髒會做到這一點,但在此之前從來沒有使用過。如何捕獲塊中的更改,或將其傳遞給塊,然後更新屬性?

回答

0

我建議使用Rails骯髒的方法:

if @user.email.changed? 
    # ... 
end 

但你也可以這樣做:

if @user.email != params[:user][:email] 
    # ... 
end 
9

使用ActiveRecord::Dirty模塊是非常簡單的:

bob = User.find_by_email('[email protected]') 
bob.changed?  # => false 

bob.email = '[email protected]') 
bob.changed?  # => true 
bob.email_changed? # => true 
bob.email_was  # => '[email protected]' 
bob.email_change # => ['[email protected]', '[email protected]'] 
bob.changed  # => ['email'] 
bob.changes  # => { 'email' => ['[email protected]', '[email protected]'] } 
+0

鋸的API,但不能讓它工作。我假設你必須包括骯髒的類,但無法找到如何去做。此刻「如果@ user.email_changed?」 – pcasa 2010-07-31 18:41:40

+0

默認包含髒模塊。你是否收到錯誤信息? – 2010-07-31 19:10:03

+0

未收到錯誤,但未檢測到更改。如果我嘗試多利安的建議,它確實看到了變化。 – pcasa 2010-07-31 19:20:20

相關問題