Я должен знать идентификатор текущего пользователя в модели:
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
при условии, что пользователь вошел в систему, вы можете использовать
UserSession.find.user
Вы можете добавить проверки, чтобы гарантировать UserSession. find
возвращает что-то перед вызовом .user
Это невозможно.
Current_user полагается на сессию, которая недоступна в модели (и это нормально. Модели являются контекстно-независимыми).
Вы должны передавать пользователя в модель как параметр.