ruby-on-rails - 我可以在表单输入集合中通过 CanCan 使用授权吗?

标签 ruby-on-rails authorization cancan simple-form ruby-on-rails-4

我正在尝试弄清楚如何将:collection用户限制为可以的用户? :管理,@article.website。如前所述,我正在使用 Cancan,我觉得我应该能够做这样的事情:

= f.input :user_id, collection: User.all unless cannot? :manage, @article.website

我正在使用 simple_form_for 因此 f.input。有什么想法吗?

最佳答案

CanCan 旨在回答“用户 U 可以做 X 吗?”的问题。我不认为 cancan 的设计目的是有效回答“哪些用户可以做 X?”这个问题。理论上你可以这样做:

User.all.select { |u| Ability.new(u).can?(:manage, @article.website) }

但是效率非常低。

除非您的用户数量非常少,否则您最好在 cancan 之外处理此问题。

关于ruby-on-rails - 我可以在表单输入集合中通过 CanCan 使用授权吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17801657/

相关文章:

javascript - 如何在移动设备中加载特定的 jquery 代码

ruby-on-rails - 如何对单个 ActiveModel/ActiveRecord 对象进行验证?

ruby-on-rails - 我是如何获得不可逆迁移的?

c# - 自定义ACL授权并根据权限返回行

c# - HTTPClient 在成功之前获得两个 401(发送错误的 token )

ruby-on-rails - 使用 CanCan 和 Twitter Bootstrap 设计的 Rails 教程

ruby-on-rails - 有可能 CanCan can :manage, :all except one or more method?

ruby-on-rails - 我应该将连接表连接到另一个表吗?

facebook - 如何通过 Facebook 的 Javascript SDK 安全地授权用户

ruby-on-rails - 如何正确设置我的CanCanCan权限?