0
我正在使用我的用戶模型中的一個rails項目我有一堆用戶的可選屬性。如果用戶添加屬性將其保存到數據庫中,則稍後將其刪除,然後將其作爲空字符串保存到數據庫中,而不是零。如果用戶決定從他們的配置文件中刪除一個屬性,而不必在控制器中手動執行該屬性,是否有任何方法可以將該值設置爲零?Rails將參數設置爲零後刪除
我正在使用我的用戶模型中的一個rails項目我有一堆用戶的可選屬性。如果用戶添加屬性將其保存到數據庫中,則稍後將其刪除,然後將其作爲空字符串保存到數據庫中,而不是零。如果用戶決定從他們的配置文件中刪除一個屬性,而不必在控制器中手動執行該屬性,是否有任何方法可以將該值設置爲零?Rails將參數設置爲零後刪除
我已經看到了這個文本字段,但我想可能會發生其他字符串值等。一種方法是覆蓋您的可選屬性的設置。如:
# Do this for each attribute:
def my_attr=(value)
super(value.presence)
end
假設你在設置你的控制器直線上升可選屬性或使用Rails的質量分配......這應該確保該字符串不是blank?
設置內部屬性之前(和如果是的話,它會將該屬性設置爲nil
)。
另一種選擇是設置一個before_save
方法來檢查和設置任何blank?
值爲零。但我認爲屬性方法重寫會更受歡迎,因爲它更加明確。