2011-10-15 23 views

回答

4
User.email_equals("[email protected]").first.setting.update_attribute(:regular_info, false) 

(沒有得心應手控制檯檢查,但認爲應該工作..)

+0

大的方式!謝謝! :) – tabaluga

4

我不知道你怎麼定義你email_equals方法,但Rails的提供基於動態屬性的發現者返回第一個匹配或零找不到。

User.find_by_email("[email protected]").setting.update_attribute(:regular_info, false) 
+0

這是最好的答案(恕我直言)。 – Mischa

+0

使用'try'來處理'find_by_email'和'settings'方法返回的'nil'結果,即'find_by_email(「[email protected]」)。try(:setting).try(:update_attribute,:regular_info,假)' –

+0

@KandadaBoggu,如果我想在這種情況下處理零,那麼我寧願不使用嘗試。我更喜歡使用find_by_email!,所以我可以拯救這個異常,或者我將它分成兩行,而不是條件。 – Samnang