The .find_by_....(...) meth returns the first model object found (or
nil if none found), whereas .find(:all, ...) meth returns an array:

$ ./script/console

>> puts Foo.find_by_id(1).class
Foo

>> puts Foo.find_by_id(0).class
NilClass

>> puts Foo.find(:all).class
Array

Jeff

On May 14, 12:09 pm, Hubert Yoshizaki <[email protected]> wrote:
> What I want to do is something like this:
>
> searchid = 4
> while searchid != -1
>   @a += A.find_by_someid(searchid)
>   @b = B.find_by_someid(searchid)
>   searchid = @b.parentid
> end
>
> The problem being the line
>
> @a += A.find_by_someid(searchid)
> The error being something like
>
> NoMethodError: undefined method `+' for #<A:0x173f9a0>
>
> I tried to simply do a @a=[] but then it complains 'A' cannot be
> converted into an Array.
>
> So, how do you combine multiple 'find' requests?
> And what format do the finds return if not an array?
> The output from a find looks something like:
> => #<A id: 99, name: "A Name">
>
> Thanks
> --
> Posted viahttp://www.ruby-forum.com/.
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Ruby on Rails: Talk" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group 
> athttp://groups.google.com/group/rubyonrails-talk?hl=en.

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to