2014-02-21 29 views
0

我正在使用我的用戶模型中的一個rails項目我有一堆用戶的可選屬性。如果用戶添加屬性將其保存到數據庫中,則稍後將其刪除,然後將其作爲空字符串保存到數據庫中,而不是零。如果用戶決定從他們的配置文件中刪除一個屬性,而不必在控制器中手動執行該屬性,是否有任何方法可以將該值設置爲零?Rails將參數設置爲零後刪除

回答

0

我已經看到了這個文本字段,但我想可能會發生其他字符串值等。一種方法是覆蓋您的可選屬性的設置。如:

# Do this for each attribute: 
def my_attr=(value) 
    super(value.presence) 
end 

假設你在設置你的控制器直線上升可選屬性或使用Rails的質量分配......這應該確保該字符串不是blank?設置內部屬性之前(和如果是的話,它會將該屬性設置爲nil)。

另一種選擇是設置一個before_save方法來檢查和設置任何blank?值爲零。但我認爲屬性方法重寫會更受歡迎,因爲它更加明確。