Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Authlogic's current_user object in models

I need to know the ID of the current user in a model:

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

But I guess that is not how it is done?

Regards,

Jacob

like image 200
jriff Avatar asked Mar 19 '10 10:03

jriff


2 Answers

assuming the user is loggedin you can use

UserSession.find.user

You might want to add checks to ensure UserSession.find returns something before calling .user

like image 121
Luqman Avatar answered Sep 21 '22 19:09

Luqman


It's not possible.
The current_user relies on the session, which isn't available in the model (and that's normal. The models are context-independent).

You should pass the user to the model as a parameter.

like image 22
Damien MATHIEU Avatar answered Sep 24 '22 19:09

Damien MATHIEU