【问题标题】:Rails: Validating uniqueness across multiple modelsRails:验证多个模型的唯一性
【发布时间】:2013-03-22 02:38:46
【问题描述】:

有没有办法在两个不同模型的列中验证属性的唯一性。例如:

我有一个自行车模型和一个汽车模型。当我创建一辆新自行车时,我想验证这辆自行车的名称是唯一的,因为没有其他自行车或汽车具有该名称。我不想将它们放在一个模型中,因为它们具有截然不同的属性。我在 Rails 2.3.8

谢谢。

【问题讨论】:

    标签: ruby-on-rails models validation unique


    【解决方案1】:

    Rails 不会自动跨模型验证(我不这么认为)。你可能应该只写你自己的方法来检查,嗯……

    class YourModel < ActiveRecord::Base
      validates :uniqueness_of_a_property_across_models
    
      def uniqueness_of_a_property_across_models
        // check the other model
      end
    end
    

    【讨论】:

    • 谢谢,我就是这么想的,但我想确保我不能在一行中做到这一点
    • 顺便说一句,在 Rails 3 和 4 中,您必须编写 validate 而不是 validates 以进行自定义验证。
    【解决方案2】:

    也许您的 Car 和 Bike 模型可以有一些共同的属性,例如这个名称,它们都可以继承一个共同的模型,并在这个模型上验证您的唯一性?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-17
      • 2023-03-07
      • 1970-01-01
      • 2011-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多