我想定义一个范围,向我展示我自己的使命(在这种背景下无关紧要)
我尝试的是:
scope :my_mission do |missions|
missions.where("mission.id = #{user.mission_id}")
end
其中mission_id是用户模型属性。 user是活动登录的。此代码必须存在于ActiveAdmin.register Mission文件中。有关如何检索用户以执行查询的任何想法吗?
答案 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?