В чем разница между запомненным объектом и использованием делегата? - PullRequest
0 голосов
/ 03 июля 2018

Я использую сериализатор для рендеринга каждого Order объекта (который включает User информацию)

В моем сериализаторе у меня есть:

delegate :user, to: object
delegate :email, :phone_number, :verified?, to: :user

Я обнаружил, что могу также использовать запомненный помощник, например:

private

def user
  @user ||= object.user
end

Это лучшая практика? И в чем разница?

1 Ответ

0 голосов
/ 03 июля 2018

Использование делегата лучше, потому что вам нужно меньше кода, и это легко понять.

Если вы создадите помощника пользователя, вам нужно будет вызвать user.email, user.phone_number, user.verified? вместо вызова email, phone_number, verified? в вашем контексте, когда вы используете делегирование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...