Forum: Ruby on Rails Search again using previous records found

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
cfingerh (Guest)
on 2007-08-02 20:51
(Received via mailing list)
I have a companies table and a products table
companies --> id,name,address,owner,country ...
products --> id, company_id,name, photo

In my controller I have

@companies=Company.find(:all,:include=>'products',:conditions=>["products.name
LIKE '%tool% and company.country='spain' "])

in my view i can show all the companies that have the product

<% for company in @companies %>
<%= company.name %>
<%end%>

and I can show all the products found
<% for product in @companies.products %>
<%= product.name %>
<%end%>

That's all OK. But now I want to research the list of products under a
new criteria using the previous records found.
@companies.products.find(:all,:conditions=>['date>2007-07-05'])

But I get ALL the product with criteria date>2007-07-05 and not just
those who meet both criterias (date criteria and name like '%tool%')
based on the records found previously. How can I do that?
Lutz H. (Guest)
on 2007-08-03 10:07
(Received via mailing list)
Hi,

2007/8/2, cfingerh <removed_email_address@domain.invalid>:
> That's all OK. But now I want to research the list of products under a
> new criteria using the previous records found.
> @companies.products.find(:all,:conditions=>['date>2007-07-05'])
>
> But I get ALL the product with criteria date>2007-07-05 and not just
> those who meet both criterias (date criteria and name like '%tool%')
> based on the records found previously. How can I do that?

You could use select on @companies.products:

@companies.products.select {|product| product.date >  Time.mktime(2007,
7, 5) }

Lutz
cfingerh (Guest)
on 2007-08-07 00:23
(Received via mailing list)
Thank you very much. And if I want to get the cheapest product with
those restrictions?

@companies.products.select {|product| product.date >
Time.mktime(2007, 7, 5) }

But I want to get the product with the cheapest price ---->
product.price
This topic is locked and can not be replied to.