【发布时间】:2013-03-22 02:38:46
【问题描述】:
有没有办法在两个不同模型的列中验证属性的唯一性。例如:
我有一个自行车模型和一个汽车模型。当我创建一辆新自行车时,我想验证这辆自行车的名称是唯一的,因为没有其他自行车或汽车具有该名称。我不想将它们放在一个模型中,因为它们具有截然不同的属性。我在 Rails 2.3.8
谢谢。
【问题讨论】:
标签: ruby-on-rails models validation unique
有没有办法在两个不同模型的列中验证属性的唯一性。例如:
我有一个自行车模型和一个汽车模型。当我创建一辆新自行车时,我想验证这辆自行车的名称是唯一的,因为没有其他自行车或汽车具有该名称。我不想将它们放在一个模型中,因为它们具有截然不同的属性。我在 Rails 2.3.8
谢谢。
【问题讨论】:
标签: ruby-on-rails models validation unique
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
【讨论】:
validate 而不是 validates 以进行自定义验证。
也许您的 Car 和 Bike 模型可以有一些共同的属性,例如这个名称,它们都可以继承一个共同的模型,并在这个模型上验证您的唯一性?
【讨论】: