Yes. Thank you. I changed the code to list indices one at a time and it worked.
it { should have_db_index(:currency_id) } it { should have_db_index(:user_id) } On Sep 3, 5:38 am, Michael Guterl <mgut...@gmail.com> wrote: > My guess is that it is checking for an compound index on all of those > fields. Try specifying them individually and not in an array. > > > > > > > > > > On Fri, Sep 2, 2011 at 7:07 PM, slavix <mikerin.sl...@gmail.com> wrote: > > now getting > > Failure/Error: it { should > > have_db_index([:user, :currency, :tradable]) } > > Expected Balance to have a index on columns user and currency > > and tradable () > > > but the indexes are in the db.. (dev and test) > > Indexes: > > Action Keyname Type > > Unique Packed Field Cardinality Collation Null Comment > > Edit Drop PRIMARY BTREE Yes No > > id 0 > > A > > Edit Drop index_balances_on_currency_id BTREE No No > > currency_id 0 A > > YES > > Edit Drop index_balances_on_tradable_id BTREE No No > > tradable_id 0 A > > YES > > Edit Drop index_balances_on_user_id BTREE No No > > user_id 0 A > > YES > > > my migration has > > def self.up > > create_table :balances do |t| > > t.belongs_to :user, :nil => false > > t.belongs_to :currency, :nil => false > > t.belongs_to :tradable, :nil => false > > t.decimal :amount, :precision => 16, :scale => 8, :default => > > 0.0 > > > t.timestamps > > end > > add_index :balances, :user_id > > add_index :balances, :currency_id > > add_index :balances, :tradable_id > > end > > > On Sep 2, 6:17 am, David Chelimsky <dchelim...@gmail.com> wrote: > >> On Sep 2, 2011, at 4:12 AM, slavix wrote: > > >> > Hello, > >> > I am developing a rails 3.1 app. My Gemfile has shoulda gems > >> > Gemfile > >> > .. > >> > gem "shoulda" > >> > gem "shoulda-matchers" > > >> You only need shoulda-matchers if you're using rspec. > > >> > In a model spec I have > >> > spec file > >> > it { should have_indices([:user, :currency]) } > > >> > And I get this error... > > >> > NoMethodError: > >> > undefined method `has_indices?' for #<Balance:0xf3b860c> > > >> When there is no have_xxx method defined, rspec-expectations implements > >> method_missing such that it assumes you want to send the object the > >> has_xxx? predicate. What your experiencing suggests that there is no > >> have_indices method. Looking > >> athttp://rdoc.info/github/thoughtbot/shoulda-matchers/master/Shoulda/Ma..., > >> I see a singular have_db_index matcher, but I don't see a pluralized one, > >> so perhaps this method doesn't exist. If it does, then something is wrong > >> with your configuration, as it is not being made available. > > >> HTH, > >> David > >> _______________________________________________ > >> rspec-users mailing list > >> rspec-us...@rubyforge.orghttp://rubyforge.org/mailman/listinfo/rspec-users > > _______________________________________________ > > rspec-users mailing list > > rspec-us...@rubyforge.org > >http://rubyforge.org/mailman/listinfo/rspec-users > > _______________________________________________ > rspec-users mailing list > rspec-us...@rubyforge.orghttp://rubyforge.org/mailman/listinfo/rspec-users _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users