gpt4 book ai didi

ruby-on-rails - rails : Validate unique combination of 3 columns

转载 作者:行者123 更新时间:2023-12-03 05:40:15 24 4
gpt4 key购买 nike

您好,我不想验证表中 3 列的唯一组合。

假设我有一个名为 cars 的表,其值为 :brand、:model_name 和 :fuel_type。

然后我想要的是根据这 3 者的组合来验证记录是否是唯一的。示例:

    brand    model_name    fuel_type
Audi A4 Gas
Audi A4 Diesel
Audi A6 Gas

应该都是有效的。但另一条包含“奥迪、A6、Gas”的记录应该无效。

我知道这个验证,但我怀疑它是否真的达到了我想要的效果。

    validates_uniqueness_of :brand, :scope => {:model_name, :fuel_type}

最佳答案

您的代码片段中存在语法错误。正确的验证是:

validates_uniqueness_of :car_model_name, :scope => [:brand_id, :fuel_type_id]

在 ruby​​ 1.9.x 中甚至更短:

validates_uniqueness_of :car_model_name, scope: [:brand_id, :fuel_type_id]

使用rails 4,您可以使用:

validates :car_model_name, uniqueness: { scope: [:brand_id, :fuel_type_id] }

通过rails 5,您可以使用

validates_uniqueness_of :car_model_name, scope: %i[brand_id fuel_type_id]

关于ruby-on-rails - rails : Validate unique combination of 3 columns,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7428872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com