It looks like a plain old AR inflection error; you can see it in the console:
> "tax".pluralize => "taxes" > "taxes".singularize => "taxis" Rails stopped accepting inflection-related patches ages ago, but you can add more; google "adding activerecord inflections". The rails docs have a few examples in the table_name method documentation: http://api.rubyonrails.org/classes/ActiveRecord/Base.html#method-c-table_name Phil On Wed, Mar 2, 2011 at 9:08 AM, David Kahn <[email protected]>wrote: > > > > On Wed, Mar 2, 2011 at 3:44 AM, Colin Law <[email protected]> wrote: > >> On 2 March 2011 00:15, David Kahn <[email protected]> wrote: >> > Correction --- I had originally misnamed the models by plural, however >> once >> > fixed now, still same problem. I think this is a shoulda issue as I can >> > associate and access the models and associations correctly in the >> console. >> >> Can you confirm the model, association and table names please? >> > > Thanks Colin, here are the models and tables. Also to be sure went in to db > console and verified the actual table names just in case something went > awry. Also at bottom are the three rspec/shoulda errors. I have to be doing > something wrong but if I am I don't see it. > > class XpJurisdictionState < ActiveRecord::Base > > has_many :xp_jurisdiction_taxes > end > > class XpJurisdictionTax < ActiveRecord::Base > belongs_to :account_subcode > belongs_to :xp_jurisdiction_states > end > > create_table "xp_jurisdiction_states", :force => true do |t| > t.string "state_code" > t.string "state" > t.string "billing_item" > t.string "billing_memo" > t.datetime "created_at" > t.datetime "updated_at" > end > > create_table "xp_jurisdiction_taxes", :force => true do |t| > t.integer "xp_jurisdiction_state_id" > t.integer "account_subcode_id" > t.decimal "tax" > t.datetime "created_at" > t.datetime "updated_at" > end > > public | xp_jurisdiction_states | table | postgres > public | xp_jurisdiction_states_id_seq | sequence | postgres > public | xp_jurisdiction_taxes | table | postgres > public | xp_jurisdiction_taxes_id_seq | sequence | postgres > > > 1) AccountSubcode > Failure/Error: it { should have_many(:xp_jurisdiction_taxes) } > NameError: > uninitialized constant AccountSubcode::XpJurisdictionTaxis > # ./spec/models/account_subcode_spec.rb:16:in `block (2 levels) in > <top (required)>' > > 2) XpJurisdictionState > Failure/Error: it { should have_many(:xp_jurisdiction_taxes) } > NameError: > uninitialized constant XpJurisdictionState::XpJurisdictionTaxis > # ./spec/models/xp_jurisdiction_state_spec.rb:4:in `block (2 levels) > in <top (required)>' > > 3) XpJurisdictionTax > Failure/Error: it { should belong_to(:xp_jurisdiction_states) } > Expected XpJurisdictionTax to have a belongs_to association called > xp_jurisdiction_states (XpJurisdictionTax does not have a > xp_jurisdiction_states_id foreign key.) > > > > >> >> Colin >> >> > >> > >> > On Tue, Mar 1, 2011 at 5:37 PM, David Kahn <[email protected]> >> > wrote: >> >> >> >> I have a model 'xp_jurisdiction_taxes' which rails (3) created >> correctly. >> >> >> >> Another model 'xp_jurisdiction_states' has many :xp_jurisdiction_taxes. >> >> >> >> In my spec I am using a shoulda helper to test the association but get >> the >> >> following error. BTW, greped the whole project just in case and the >> string >> >> 'taxi' exists nowhere. >> >> >> >> 1) XpJurisdictionStates >> >> Failure/Error: it { should have_many(:xp_jurisdiction_taxes) } >> >> NameError: >> >> uninitialized constant XpJurisdictionState::XpJurisdictionTaxis >> >> # ./spec/models/xp_jurisdiction_states_spec.rb:4:in `block (2 >> levels) >> >> in <top (required)>' >> >> >> >> Not sure if this is a rails or shoulda issue (I am starting to think it >> is >> >> shoulda). Any input? >> > >> > -- >> > You received this message because you are subscribed to the Google >> Groups >> > "Ruby on Rails: Talk" group. >> > To post to this group, send email to [email protected]. >> > To unsubscribe from this group, send email to >> > [email protected]. >> > For more options, visit this group at >> > http://groups.google.com/group/rubyonrails-talk?hl=en. >> > >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Ruby on Rails: Talk" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/rubyonrails-talk?hl=en. >> >> > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/rubyonrails-talk?hl=en. > -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

