Friday, September 3, 2010

[Rails] Re: Using ActiveRecord Find with associations

Pito Salas wrote:
> Here's an example:
>
> class LineItem < ActiveRecord::Base
> belongs_to :order
> end
>
> class Order < ActiveRecord::Base
> has_many :line_items
> end
>
> my_line_item = LineItem.find(:zipcode => "12345")
>
> Order.find_by_line_item(my_line_item) # doesn't work
>
> Order.find_by_line_item_id (my_line_item) # does work
>

Probably not explaining this clearly enough (I blame the distillery
masters at Lagavulin), but:

find_by_line_item fails - my_line_item is an instance of the class (an
object) that does not have a 'line_item' attribute you indicated, it
*is* a LineItem

find_by_line_item_id works - rails infers the id attribute when you pass
an object (my_line_item), and in this case you've provided enough
information to tell rails which attribute to use...

I suppose you could mod the logic for find to include your syntax...
--
Posted via http://www.ruby-forum.com/.

--
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 rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home


Real Estate