To understand better how this construct works, try writing in irb
>> nil || "steve"
>> "steve" || "john"
>> "steve" || nil
>> nil && "steve"
>> "steve" && nil
>> "steve" && "john"
The construct ||= is shorthand for
>> @blah = @blah || "something"
It's common practice in many programming languages to use boolean operators like this as shorthand for using an if statement.
>> @blah ||= "something"
Can also be written as
>> @blah = "something" unless @blah
In more verbose languages it would need to be a full if statement.