2013-04-07 39 views
0

我有這個在我的User.rb模型保存之前正確格式化用戶的子域:Rails的模型驗證掛斷PUT請求

def subdomain=(c) 
    write_attribute(:subdomain, c.tr('^A-Za-z0-9', '').downcase) 
end 

但是當我做一個客戶端(骨幹)PUT請求API,更新的屬性不包含子...

Request Payload: { bg_hue: "359", id: 4 } 

..the上面的自定義模型驗證造成500響應,指定了以下錯誤:

NoMethodError at /user/4=================================> undefined method `tr' for nil:NilClass 

意義,它是掛在模型

我想我可以檢查,如果請求包括在控制器第一子域名,然後嘗試使用或不使用子域名保存它的c.tr線,我認爲應該解決上述問題,但是再次,我不完全確定問題所在。

有什麼建議嗎?

回答

2

錯誤消息告訴你undefined method `tr' for nil:NilClass。問題是c傳入的值是nil。你應該這樣做:

def subdomain=(c) 
    write_attribute(:subdomain, c.tr('^A-Za-z0-9', '').downcase) unless c.nil? 
end 
+0

感謝羅布,像一個魅力工作。 – ac360 2013-04-07 20:32:12