Active Admin使用范围中的当前用户属性

时间:2014-03-15 23:43:58

标签: ruby-on-rails ruby-on-rails-3 model activeadmin

我想定义一个范围,向我展示我自己的使命(在这种背景下无关紧要)

我尝试的是:

scope :my_mission do |missions|
  missions.where("mission.id = #{user.mission_id}")
end 

其中mission_id是用户模型属性。 user是活动登录的。此代码必须存在于ActiveAdmin.register Mission文件中。有关如何检索用户以执行查询的任何想法吗?

2 个答案:

答案 0 :(得分:1)

ActiveAdmin使用AdminUser模型:

current_admin_user or current_active_admin_user == current_user

您的范围定义可以是这样的:

scope :my_mission do |missions|
  missions.where(admin_user_id == current_admin_user.id)
end

或在您的情况下搜索单一任务

scope :my_mission do |missions|
  Mission.find(current_admin_user.mission)
end 

答案 1 :(得分:0)

主动管理员用户名为

AdminUser 

默认情况下。因此,相应的设计辅助方法是

current_admin_user.

参考:How to get the current user that is logged in via active admin?