Sda*_*dad 3 ruby ruby-on-rails
我读了rails doc发现exclusion和inclusion方法这个描述
2.4排除
此帮助程序验证属性的值不包含在给定集中.实际上,这个集合可以是任何可枚举的对象.
但不明白使用它
2.6包容
相同的定义
随着exclusion您可以验证为你指定不采取任何这些对的值的属性值in选项.
举个汽车模型的例子,你有价格,规格,品牌等(未标准化).您可以阻止创建具有品牌丰田的汽车,添加该特定品牌,并且在保存记录时,由于验证,它将引发错误,并且交易将遭受回滚.
class Car < ApplicationRecord
validates :brand, exclusion: { in: %w[hyundai toyota peugeot] }
end
car = Car.new(price: 11111, brand: 'hyundai')
car.valid? # false
car.errors.messages
# => {:brand=>["is reserved"]}
car.save
# (0.1ms) begin transaction
# (0.1ms) rollback transaction
# => false
Run Code Online (Sandbox Code Playgroud)
只要品牌不是"hyundai","toyota"或"peugeot",您就可以制造任何车型.
请注意,验证区分大小写.是不一样的"现代"或"现代"(或任何其他).
ActiveRecordValidations#inclusion与排除相反,它检查的值只能是in选项中的任何一个.
| 归档时间: |
|
| 查看次数: |
154 次 |
| 最近记录: |