【发布时间】:2011-07-10 15:08:28
【问题描述】:
我有一个模型,它的字段可以包含值列表。我希望该列表仅限于一个子集。我想使用validates_inclusion_of,但可能误解了该验证。
class Profile
include Mongoid::Document
field :foo, :type => Array
validates_inclusion_of :foo, in: %w[foo bar]
end
p = Profile.new
p.valid? #=> false; this is correct, as it should fail on empty lists.
p.foo = ["bar"]
p.valid? #=> false; this is incorrect. I would expect it to pass now.
p.errors #=> {:foo=>["is not included in the list"]}
我做错了什么? validates_inclusion_of可以用于数组吗?
【问题讨论】:
-
我建议为此编写一个自定义验证器,否则维护包含列表的排列组合可能会随着时间的推移变得难以管理。
标签: ruby-on-rails-3 validation mongoid