Аутлогический метод записи. Что это делает - PullRequest
6 голосов
/ 12 октября 2009

Я наткнулся на этот метод, называемый record, который Райан Бейтс использует в своем аутентичном Railscast и, похоже, не может понять, что он делает. Я изучил документацию, но не могу понять, насколько полезен этот помощник.

def current_user
  return @current_user if defined?(@current_user)

  current_user_session && current_user_session.record
end

Что я хочу знать, так это то, что это просто извлекает запись из базы данных и почему она отличается от стандартного способа извлечения данных из базы данных.

Спасибо.

1 Ответ

9 голосов
/ 12 октября 2009

Этот метод «записи» является отношением принадлежащего к пользовательской сессии и пользовательской модели. Таким образом, на основе сеанса он возвращает пользователя.

Однако, согласно документации , это больше не "запись" Но "пользователь". Итак, ваш вспомогательный метод current_user должен быть следующим:

def current_user
    return @current_user if defined?(@current_user)
    @current_user = current_user_session && current_user_session.user
end
...