2014-02-21 28 views
0

我正在使用我的用户模型中的一个rails项目我有一堆用户的可选属性。如果用户添加属性将其保存到数据库中,则稍后将其删除,然后将其作为空字符串保存到数据库中,而不是零。如果用户决定从他们的配置文件中删除一个属性,而不必在控制器中手动执行该属性,是否有任何方法可以将该值设置为零?Rails将参数设置为零后删除

回答

0

我已经看到了这个文本字段,但我想可能会发生其他字符串值等。一种方法是覆盖您的可选属性的设置。如:

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

假设你在设置你的控制器直线上升可选属性或使用Rails的质量分配......这应该确保该字符串不是blank?设置内部属性之前(和如果是的话,它会将该属性设置为nil)。

另一种选择是设置一个before_save方法来检查和设置任何blank?值为零。但我认为属性方法重写会更受欢迎,因为它更加明确。