gpt4 book ai didi

ruby-on-rails - cancan - 处理一个巨大的 ability.rb 文件

转载 作者:行者123 更新时间:2023-12-04 06:21:17 24 4
gpt4 key购买 nike

我的网站有一个重要的角色方面,我的 ability.rb 文件已经发展成为一个庞然大物。现在它每次都会进行 25 次查询以检查“角色”记录 load_and_authorize_resource叫做。大多数这些查询是无关紧要的,因为它们管理着许多不同的权限,而不是与正在使用的 Controller 相关的权限。

假设在 companies 上 Controller ,我只想检查 Company 的权限和 Project ,我想忽略 Task , Employee , 和 Assignment .

如何将参数发送到 ability.rb所以它每次只执行相关查询?

最佳答案

嗯,一个建议可能是,您可以为公司和项目定义自己的能力模型。

很快就会想到的是正在使用的相同概念 here .

也许你可以覆盖 current_ability方法分别在公司和项目控制人中。就像是:

def current_ability
@current_ability ||= CompanyAbility.new(current_user)
end

而在您的 CompanyAbility模型,您可以在此处为公司定义自定义权限设置。

希望有帮助。

关于ruby-on-rails - cancan - 处理一个巨大的 ability.rb 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6514712/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com