RE: undefined?

Good to know the reason why.

Ruby has a naming convention where Recipe refers to a class and recipe
is a local variable, that holds a reference to an instance of an object

.find_all is a method of a Class. You don’t need an instance of an
object to reference class methods just the class definition (I know in
Ruby this is not strictly correct because Everything in Ruby is an
object even a Class)

So for example

Recipe.new or Recipe.find_all are methods of the Class

my_recipe.ingredients is a method on an object referenced by the local
variable my_recipe (which from the name is probably an instance of
Recipe).
It could just as easily be @my_recipe.ingredients

HTH

Ross