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