我正在使用 activeadmin,需要弄清楚如何要求范围仅显示与当前用户有关的记录。
我还有其他用户可以选择的范围,但可以说这些范围需要“预先确定”,以便在任何给定时间只有属于该用户的记录可用。
我希望这是有道理的。我对这一切都很陌生,所以我不确定从哪里开始。提前感谢您的帮助。
我正在使用 activeadmin,需要弄清楚如何要求范围仅显示与当前用户有关的记录。
我还有其他用户可以选择的范围,但可以说这些范围需要“预先确定”,以便在任何给定时间只有属于该用户的记录可用。
我希望这是有道理的。我对这一切都很陌生,所以我不确定从哪里开始。提前感谢您的帮助。
您是否尝试过范围界定scope_to :current_user
?
AA 有一些带有 docs 的示例。在这里他们是 http://activeadmin.info/docs/2-resource-customization.html#scoping_the_queries
current_user 是从 AA 初始化程序获取当前登录用户(我认为是默认值)代码的辅助方法
# This setting changes the method which Active Admin calls
# to return the currently logged in user.
config.current_user_method = :current_user
如果您的模型中有某种使用登录用户的方法,您可以执行类似的操作
controller do
def scoped_collection
Post.some_method(current_user)
#or for example Post.select(current_user.visible_posts_columns) ... etc
end
end