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

これはもはや関係ありません。sure_inclusion_ofは非推奨であり、将来のリリースで削除される予定です。validate_inclusion_ofを使用する次の回答を参照してください

私はそのようなvalidates_inclusion_ofのためのshouldaマッチャーはないと思います。ただし、 shoulda-matchersプロジェクトのマスターで利用できるものに基づいて、これを実行できると思います。

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

shouldaマッチャーがありますvalidate_inclusion_of

ensure_inclusion_of は非推奨であり、次のメジャーリリースで削除される予定です。

コードがdescribe Model doブロック内にあることを確認しますか?

于 2015-02-03T18:01:42.783 に答える