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

lengcb · 发布于 2017年06月05日 · 最后由 lengcb 回复于 2017年06月05日 · 359 次阅读
20540

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

共收到 13 条回复
96

關鍵字 rails valid only create

20540
32hong_xin 回复

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

1

埋坑中。

20540
1Rei 回复

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

96

喔喔,理解錯誤了

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

  def xxx?

  end
end
56f433
validates : card_number, presence: true, if: proc { |c| c.id > 10000  }
20540
56f433CooperFu 回复

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

20540
15huobazi 回复

嗯,明白

22720

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

1342

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

20540
22720ACzero 回复

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

20540
1342ywjno 回复

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

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