CanCan,处理嵌套条件和新动作

时间:2018-12-04 17:32:17

标签: ruby-on-rails devise ruby-on-rails-5 cancan cancancan

在我的Rails 5应用程序中,我使用CanCanCan。 我想知道处理新动作和嵌套条件的正确方法是什么。

如果我有一个简单的条件并调用新操作,它将以以下条件启动对象:

can :manage, Product, :discontinued => false

这将导致:

@product = Product.new(:discontinued => false)

https://github.com/ryanb/cancan/wiki/authorizing-controller-actions

现在,如果我有以下嵌套条件:

can :manage, Company, agency: { platform_id: user.platform_id }

CanCanCan当然不能使用代理集启动,但是它仍然可以允许我创建一个新公司,然后在其中选择代理,并在创建它时检查代理platform_id是否属于用户。这将是理想的行为。但是相反,它甚至不让我调用新方法,而是引发了错误。

我认为使用嵌套条件和新方法并不是很常见,但是在我的广泛搜索过程中找不到关于此的任何信息。

0 个答案:

没有答案