我有一个模型,它有一个字段,可以包含一个值列表。我希望该列表仅限于一个子集。我想使用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可以用于数组吗?
发布于 2011-07-11 14:58:29
您的字段值是数组(field :foo, :type => Array)验证要求字段不是数组,以检查其是否包含。根据您的示例,验证是检查'foo',‘bar’。.include?(‘bar’)# => false
因此,请更正validates_inclusion_of中的:in选项:
validates_inclusion_of :foo, in: [['foo'], ['bar']]https://stackoverflow.com/questions/6641845
复制相似问题