【发布时间】:2012-10-25 16:53:57
【问题描述】:
我正在使用 activeadmin,需要弄清楚如何要求范围仅显示与当前用户有关的记录。
我还有其他用户可以选择的范围,但可以说这些范围需要“预先确定”,以便在任何给定时间只有属于该用户的记录可用。
我希望这是有道理的。我对这一切都很陌生,所以我不确定从哪里开始。提前感谢您的帮助。
【问题讨论】:
标签: ruby-on-rails activeadmin scopes
我正在使用 activeadmin,需要弄清楚如何要求范围仅显示与当前用户有关的记录。
我还有其他用户可以选择的范围,但可以说这些范围需要“预先确定”,以便在任何给定时间只有属于该用户的记录可用。
我希望这是有道理的。我对这一切都很陌生,所以我不确定从哪里开始。提前感谢您的帮助。
【问题讨论】:
标签: ruby-on-rails activeadmin scopes
您是否尝试使用 scope_to :current_user 进行范围界定?
AA 有一些带有 docs 的示例。他们来了 http://activeadmin.info/docs/2-resource-customization.html#scoping_the_queries
current_user 是获取当前登录用户的辅助方法(我认为 current_admin_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
【讨论】: