@
в начале переменной делает его переменной экземпляра. Если бы этого не было, переменная была бы просто локальной переменной. Я предполагаю, что, поскольку это книга о Rails, предполагается, что этот код будет в контроллере. Переменные, которые контроллеры хотят совместно использовать между методами или предоставлять в своих представлениях, должны быть переменными экземпляра. В этом случае @order
, вероятно, было создано либо с помощью параметров из запроса, либо со значениями, извлеченными из базы данных.
Это, вероятно, не так важно, хотя и его пример, и ваш пример работы - я думаю, что автор просто показывал, как будет выглядеть вызов OrderConverter
, и игнорировал, как был создан объект Order
.
attr_reader :order
создает метод "получения" для переменной экземпляра @order
в OrderConverter
- он не нужен для to_pdf
- он будет использоваться для возврата Order
из OrderConverter
через converter.order
. Я не вижу необходимости иметь это в приведенном вами коде, но, возможно, в этом есть необходимость позже.