Mitchell Gould
2009-Oct-26 15:20 UTC
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.
--
Posted via http://www.ruby-forum.com/.
Patrick Doyle
2009-Oct-26 15:25 UTC
Re: model.find(:id) and model.find(:all) giving different result
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