James Bond wrote:
> There is example:
> http://wiki.rubyonrails.org/rails/pages/ThroughAssociations
> 
> Example
> 
> Catalogue has_many :catalogue_items
> CatalogueItems belongs_to :catalogue; belongs_to :product
> Product has_many :catalogue_items
> 
> So how I can get:
> 
> catalogues.name
> catalogue_items.position
> products.name
> products. price
> WHERE
> catalogues.name LIKE "xxx%"

First of all, amend your association in Catalogue as follows - this will 
mean that the catalogue's items (and therefore products) will 
automatically be ordered by position.

Catalogue
  has_many :catalogue_items, :order => "position"

Then, in the controller:

#do an include to eager load the relevant associations.
@catalogues = Catalogue.find(:all, :conditions => ["name like ?", 
"#{a_variable}%"], :include => {:catalogue_items => :products})

And then, for example, in the view:

<% @catalogues.each do |catalogue| %>
  <div>Catalogue:<%= catalogue.name %></br/>
    <% catalogue.catalogue_items.each do |item| %>
      <div class="product"><%= item.position %>: <%= item.product.name 
%>: <%= item.product.price %></div>
    <% end %>
  </div>
<% end %>

Obviously you can put your own html around this, this is just a simple 
example.
-- 
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+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to