model.find(:id) and model.find(:all) giving different result

I have the following code that works very well

@manufacturer = Manufacturer.find_manufacturer(params[:id])

which produces the following SQL:

SELECT * FROM `manufacturers` WHERE (`manufacturers`.`id` = 4) #Here params[:id] =4

ON my view I can access the fields using

@manufacturer.field_name

However when I do the following

@manufacturer = Manufacturer.find(:all, :conditions => {:id => params[:id]})

Which produces the same SQL as above:

SELECT * FROM `manufacturers` WHERE (`manufacturers`.`id` = 4) #Here params[:id] =4

I get the following error on my view:

NoMethodError in Public_manufacturers#show_manufacturer_details

Showing app/views/public_manufacturers/show_manufacturer_details.html.erb where line #4 raised:

undefined method `logo' for #<Array:0x26e4838>

Why is this happening and how can I solve it?

Thank you in advance.

find(:all, ...) returns an array.

find(:first, ...), or equivalently, find_manufacturer(some_id) returns a single item.

try:

@manufacturers = Manufacturer.find(:all, :conditions => {:id => params[:id]})

@manufacturers[0].show_manufacturer_details.

--wpd