Shouldn't the line in Prices be
belongs_to :stockmaster, :foreign_key => 'stockid'
since ActiveRecord will be looking for 'stockmaster_id'?

I'm not sure I'm on the right track there, but in your first example
you were explicitly looking for stockid in the find.
Cheers.

On Jul 7, 6:23 am, Craig White <[email protected]> wrote:
> On Mon, 2009-07-06 at 11:16 -0700, Craig White wrote:
> > I am dealing with a legacy db which is limiting my options here.
>
> > I have...
>
> > class Stockmaster < ActiveRecord::Base
> >   set_table_name "stockmaster"
> >   set_primary_key "stockid"
>
> >   has_many :prices
>
> >   def wholesale_price(stockid)
> >     Price.find(:first, :conditions => ["stockid = ? AND typeabbrev = ?",
> > stockid, "WH"])
> >   end
>
> >   def retail_price(stockid)
> >     Price.find(:first, :conditions => ["stockid = ? AND typeabbrev = ?",
> > stockid, "RE"])
> >   end
> > end
>
> > and
>
> > class Price < ActiveRecord::Base
> >   set_table_name "prices"
> >   set_primary_key "stockid"
>
> >   belongs_to       :stockmaster
> > end
>
> > and my issue is that I have both a 'WH' and 'RE' typeabbrev for each
> > stockid and I need to make this simpler for a database lookup to print a
> > prices sheet.
>
> > It makes sense to do eager loading of associations here but I cannot
> > figure out how to change the model for this eager loading since for each
> > stockid, there are two values (WH/wholesale and RE/retail).
>
> > Can anyone toss me a bone here?
>
> ----
> still trying but can't seem to find a way for this to work (in
> Stockmaster class),
>
>   has_one       :wh_price, :through => 'prices', :conditions => ["typeabbrev
> = ?", "WH"], :source => 'prices'
>   has_one       :re_price, :through => 'prices', :conditions => ["typeabbrev
> = ?", "RE"], :source => 'prices'
>
> but when I restart console and check,
>
> >> @stkitems[0].wh_price
>
> ActiveRecord::HasManyThroughAssociationNotFoundError: Could not find the
> association "prices" in model Stockmaster
>
> from 
> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/reflection.rb:285:in
>  `check_validity!'        from 
> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations/has_many_through_association.rb:5:in
>  `initialize'        from 
> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations.rb:1230:in
>  `new'        from 
> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/associations.rb:1230:in
>  `wh_price'
>         from (irb):6
>         from :0
>
>
>
> Craig
>
> --
> This message has been scanned for viruses and
> dangerous content by MailScanner, and is
> believed to be clean.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to