I moved your post to the bottom. Please read http://idallen.com/topposting.html

On Sep 2, 2011, at 5:58 PM, slavix wrote:


> 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.

> Thanks,
> I updated spec with correct statements
> 
>  it { should have_db_index([:user, :currency, :tradable]) }
> ----------
> and my db (dev and test) has the indexes
> 
> 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
> 
> but I get an error running rspec
>  2) Balance shoulda validations
>     Failure/Error: it { should
> have_db_index([:user, :currency, :tradable]) }
>       Expected Balance to have a  index on columns user and currency
> and tradable ()

The indexes are on xxx_id. Try { should have_db_index([:user_id, :currency_id, 
:tradable_id]) }
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to