【问题标题】:Save blank value as nil in database在数据库中将空白值保存为 nil
【发布时间】:2010-11-28 11:39:00
【问题描述】:

我有一个网页询问一些信息。但有些值可以为空。但是,如果我用一些空白值保存了不止一次我的处方集,如果说该值已经被采用。这是正常的,因为我使用了:validates_uniqueness_of

我的问题是:如果我将 value 保存为 nil,这个问题会解决吗?如果是,如何将值保存为零。或者请问其他解决方案是什么??

提前致谢。

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    我个人不会像老虎钳那样使用 :allow_blank 的验证,并且有一个 before_validation 回调,如果 value.blank 将值设置为 nil?

    类似:

    private
    
    def strip_spaces
      attrib = nil if attrib.blank?
    end
    

    这样做的原因是查找那些未设置值的查询将是where attrib is null而不是where trim(attrib) = '' or attrib is null

    【讨论】:

    • 处理每个这样的属性太冗长,无法扩展。
    【解决方案2】:

    它在文档中。

    validates_uniqueness_of :my_value, :allow_blank => true
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-06
      • 2019-05-13
      • 2022-01-12
      • 1970-01-01
      • 2013-05-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多