让我试着在这里提出一个简单的例子:
我有db table Orders
和一列delivery_address
。
<%= form_for @order do |f| %>
<%= f.text_field :delivery_address %>
<% end %>
如果表单未进行任何更改,则在提交表单后,Orders.delivery_address
的值会从NULL
更改为空值。
我设置了一个警告通知,如下所示:
test@gmail.com changed delivery_address to .
任何建议如何使用rails update操作阻止将具有NULL值的db字段更新为空。
答案 0 :(得分:1)
您可以在模型中执行以下操作:
# In the Order model
before_validation do
self.delivery_address = nil if delivery_address.blank?
end
我也真的不喜欢这种情况发生,但另一种选择是在控制器级别上进行