current_user Authlogic возражают в моделях

Я должен знать идентификатор текущего пользователя в модели:

def after_save
  desc, points=nil, nil

  if answer_index == daily_question.correct_answer_index 
    desc = I18n.t('daily_question.point_log.description.correct') 
    points=daily_question.points
  else
    desc = I18n.t('daily_question.point_log.description.incorrect')
  end

  current_user.give_points(:description => desc,
                           :points => points
                          )
end

Но я предполагаю, что это не то, как это сделано?

С уважением,

Jacob

8
задан jriff 19 March 2010 в 10:57
поделиться

2 ответа

при условии, что пользователь вошел в систему, вы можете использовать

UserSession.find.user

Вы можете добавить проверки, чтобы гарантировать UserSession. find возвращает что-то перед вызовом .user

15
ответ дан 5 December 2019 в 10:40
поделиться

Это невозможно.
Current_user полагается на сессию, которая недоступна в модели (и это нормально. Модели являются контекстно-независимыми).

Вы должны передавать пользователя в модель как параметр.

1
ответ дан 5 December 2019 в 10:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: