4
希望我的項目的最後一部分。髒並檢查電子郵件屬性是否更改?
需要檢查,如果user.email屬性更改。如果是這樣,那麼需要告訴mailchimp更改或添加電子郵件。
看起來髒會做到這一點,但在此之前從來沒有使用過。如何捕獲塊中的更改,或將其傳遞給塊,然後更新屬性?
希望我的項目的最後一部分。髒並檢查電子郵件屬性是否更改?
需要檢查,如果user.email屬性更改。如果是這樣,那麼需要告訴mailchimp更改或添加電子郵件。
看起來髒會做到這一點,但在此之前從來沒有使用過。如何捕獲塊中的更改,或將其傳遞給塊,然後更新屬性?
我建議使用Rails骯髒的方法:
if @user.email.changed?
# ...
end
但你也可以這樣做:
if @user.email != params[:user][:email]
# ...
end
使用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]'] }
鋸的API,但不能讓它工作。我假設你必須包括骯髒的類,但無法找到如何去做。此刻「如果@ user.email_changed?」 – pcasa 2010-07-31 18:41:40
默認包含髒模塊。你是否收到錯誤信息? – 2010-07-31 19:10:03
未收到錯誤,但未檢測到更改。如果我嘗試多利安的建議,它確實看到了變化。 – pcasa 2010-07-31 19:20:20