0
我正在使用我的用户模型中的一个rails项目我有一堆用户的可选属性。如果用户添加属性将其保存到数据库中,则稍后将其删除,然后将其作为空字符串保存到数据库中,而不是零。如果用户决定从他们的配置文件中删除一个属性,而不必在控制器中手动执行该属性,是否有任何方法可以将该值设置为零?Rails将参数设置为零后删除
我正在使用我的用户模型中的一个rails项目我有一堆用户的可选属性。如果用户添加属性将其保存到数据库中,则稍后将其删除,然后将其作为空字符串保存到数据库中,而不是零。如果用户决定从他们的配置文件中删除一个属性,而不必在控制器中手动执行该属性,是否有任何方法可以将该值设置为零?Rails将参数设置为零后删除
我已经看到了这个文本字段,但我想可能会发生其他字符串值等。一种方法是覆盖您的可选属性的设置。如:
# Do this for each attribute:
def my_attr=(value)
super(value.presence)
end
假设你在设置你的控制器直线上升可选属性或使用Rails的质量分配......这应该确保该字符串不是blank?
设置内部属性之前(和如果是的话,它会将该属性设置为nil
)。
另一种选择是设置一个before_save
方法来检查和设置任何blank?
值为零。但我认为属性方法重写会更受欢迎,因为它更加明确。