新手问题 Rails 如何在 model 里建立一个验证,使得旧数据忽略这个验证,而新数据不能忽略这个验证?

lengcb · 2017年06月05日 · 最后由 lengcb 回复于 2017年06月05日 · 1535 次阅读

rails 如何在 model 里建立一个验证,使得旧数据忽略这个验证,而新数据不能忽略这个验证?

關鍵字 rails valid only create

hong_xin 回复

是想旧数据更新时也忽略验证,但新数据更新时不忽略验证。我知道解决的方法了

埋坑中。

Rei 回复

我想的太理想,是想旧数据更新时也忽略验证,但新数据更新时不忽略验证。我说的新旧数据区分是按照创建时间来看的,没有说明白

喔喔,理解錯誤了

class Order < ApplicationRecord
  validates :card_number, presence: true, if: :xxx?

  def xxx?

  end
end
validates : card_number, presence: true, if: proc { |c| c.id > 10000  }
CooperFu 回复

是的,这是一个处理方法,谢谢

huobazi 回复

嗯,明白

我觉得跑个脚本处理一下旧数据比较好吧😅

处理旧数据的时候不用 savesaveupdateupdate! 来更新数据就好

ACzero 回复

哈哈,确实是一种处理方式

ywjno 回复

嗯嗯,这问题我问得又歧义,其实关键是新旧数据的区分

需要 登录 后方可回复, 如果你还没有账号请 注册新账号