user.profiles.new(mobile: '0988123456')

我們知道上面這段 code 得到的 profile mode,裡面的 value 會有 user_id 和 mobile

不過 assignment 的順序可是 mobile -> user_id

所以當你 overwrite setter method 時,例如

def mobile=(value)
  user.country_code + value.to_s
end

這時 user 肯定是 null

所以得把這樣的處理移到 before_save 或先 new 出來後再 assign_attributes 才行。

熱門文章

我的「最後一個」產品終於上線了,它的名字叫「奧丁」(Odin)

為什麼要說是「最後一個」呢?因為接下來任...

rails 動態時區實作

如何依照不同的條件,例如登入的使用者,來...

從 FB fanpage 下載的 JSON 檔如何正確 parse

從臉書下載粉專歷史資料中,處理 JSON...