0

我有一个铁路应用程序,适用于来自不同组织的用户。

我想建立一种机制来确保当用户从数据库中获取任何数据时,它只能来自他的组织。

即使我的查询中有错误,我也希望这是真的,即我希望这个过滤器独立于所有其他代码。

如何实现此过滤器以在所有 ActiveRecord 调用上运行?

我可以为此使用“default_scope”(http://apidock.com/rails/ActiveRecord/Scoping/Default/ClassMethods/default_scope),但如何将其应用于所有模型?

谢谢!

4

1 回答 1

0

对我来说,正确实现这一目标的唯一方法是将所有方法限定为类似

user_organization.<relation>.<query>

例如,您可以在 ApplicationController 中有一个 user_organization 方法

class ApplicationController < ActionController::Base
  def user_organization
    current_user.organization
  end
end

如果我没记错的话,默认范围不接受参数,我强烈建议您不要使用任何东西。

于 2013-07-02T10:06:55.747 回答