This is probably a basic question, but I was wondering if / how it''s
possible to run a find on an existing hash.
For instance:
1. I need to pull all products in the database for a simple list:
@products = Products.find(:all)
2. At a separate portion of the page, I want to display products that
are in, say, category 5.
From scratch, I could run...
@new_products = Products.find(:all, :conditions => {:category_id => 5})
Although, I thought you could also do
@new_products = @products.find(:all, :conditions => {:category_id = 2})
My query has been returning a wrong number of arguments (2 for 1), so I
wasn''t sure if I was headed on the right track.
-- 
Posted via http://www.ruby-forum.com/.
On Apr 23, 6:10 am, Robert Scott <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> This is probably a basic question, but I was wondering if / how it''s > possible to run a find on an existing hash. > > For instance: > > 1. I need to pull all products in the database for a simple list: > @products = Products.find(:all) > > 2. At a separate portion of the page, I want to display products that > are in, say, category 5. > > From scratch, I could run... > @new_products = Products.find(:all, :conditions => {:category_id => 5}) > > Although, I thought you could also do > > @new_products = @products.find(:all, :conditions => {:category_id = 2}) > > My query has been returning a wrong number of arguments (2 for 1), so I > wasn''t sure if I was headed on the right track.Enumerables (and thus arrays) have a method called find, but it''s not an activerecord find and so has different syntax. Check the ruby standard library api for details of enumerable''s find. Fred> -- > Posted viahttp://www.ruby-forum.com/.
In the Enumerable''s find_all method will be:
@products.find_all { |product| product.category_id = 2 }
This method returns an array, the find method returns only the first
match. This approach is not the best if you have a lot of products, in
that case you will use the ActiveRecord''s find and let the database do
this work in a more efficient way.
Regards.
Franco Catena.
On Apr 23, 2:10 am, Robert Scott
<rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org>
wrote:> This is probably a basic question, but I was wondering if / how
it''s
> possible to run a find on an existing hash.
>
> For instance:
>
> 1. I need to pull all products in the database for a simple list:
> @products = Products.find(:all)
>
> 2. At a separate portion of the page, I want to display products that
> are in, say, category 5.
>
> From scratch, I could run...
> @new_products = Products.find(:all, :conditions => {:category_id =>
5})
>
> Although, I thought you could also do
>
> @new_products = @products.find(:all, :conditions => {:category_id = 2})
>
> My query has been returning a wrong number of arguments (2 for 1), so I
> wasn''t sure if I was headed on the right track.
> --
> Posted viahttp://www.ruby-forum.com/.