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-users@rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to