3

我收到此方法不存在的错误,但这似乎相当基本,我不确定为什么会收到错误?

it { should validate_presence_of :role } # This is OK.

 Failure/Error: 
it { should validate_inclusion_of :role, :in => %w[one two three ] }
 NoMethodError:
   undefined method `validate_inclusion_of' for #<RSpec::Core::ExampleGroup::Nested_1:0x007fad7474f9b8>

对于代码:

class User < ActiveRecord::Base
  validates_presence_of :role
  validates_inclusion_of :role, :in => [one, two three]       ]

http://apidock.com/rails/ActiveModel/Validations/ClassMethods/validates_inclusion_of

4

2 回答 2

15

这不再相关。ensure_inclusion_of 已弃用,将在未来版本中删除。请参阅使用 validate_inclusion_of 的下一个答案

我不认为 validates_inclusion_of 应该有这样的匹配器。但是,根据 master 在shoulda-matchers项目中可用的内容,我认为您可以这样做:

it { should ensure_inclusion_of(:role).in_array([1,2,3]) }     
于 2012-07-28T02:59:15.343 回答
11

一个应该匹配器validate_inclusion_of

ensure_inclusion_of 已弃用,将在下一个主要版本中删除。

你确定你的代码在一个describe Model do块内吗?

于 2015-02-03T18:01:42.783 回答