application_controller
中有一个辅助方法:
def current_user
@current_user ||= User.find(session[:user_id])
return @current_user
end
我想在模型中设置before_save
回调 - 以便在更新activerecord时保存current_user.id
。
基本上,无论何时更改,修改和保存模型,我都要确保为该模型填充updated_by列/
但我不确定如何访问模型中的当前用户?
有人可以提供建议吗?
答案 0 :(得分:0)
不可能,current_user仅在控制器中可用。您应该在方法中传递current_user id,例如:
在控制器方法中:
def action
method_with_user_id(current_user.id)
end
在模型类定义中:
def method_with_user_id(user_id)
#things with the user id
end
答案 1 :(得分:0)
你可以这样做来访问模型
中控制器中声明的实例变量class User < ActiveRecord::Base
cattr_accessor :current_user
end
class ApplicationController < ActionController::Base
before_filter :current_user
def current_user
@current_user ||= User.find(session[:user_id])
User.current_user = @current_user
end
end
end