0

我正在使用 Rails 4、Devise、Role Model 和 CanCanCan 来制作应用程序。

我正在尝试在我的ability.rb 中定义能力。

我正在尝试以下操作:

  can :read, Project, {:active => true, :closed => false  &&  Project.sweep.disclosure.allusers => true}

但是,我在上面的行中收到一个语法错误,上面写着:

syntax error, unexpected =>, expecting '}'
...ct.sweep.disclosure.allusers => true}

我尝试将 => 替换为 :true ,但在这种情况下出现语法错误:

syntax error, unexpected tSYMBEG, expecting '}'
...ect.sweep.disclosure.allusers :true}

我还尝试将冒号放在属性的开头,在这种情况下我收到此错误:

syntax error, unexpected =>, expecting '}'
...ct.sweep.disclosure.allusers => true}

我想不出更多的方法来尝试这个。

我试图测试的相关属性在一个名为 Disclosure.rb 的模型中。该模型属于一个名为 Sweep.rb 的模型。Sweep 属于一个名为 Project.rb 的模型。

我不知道如何定义能力,这些错误让我筋疲力尽。有谁知道如何使用 CanCanCan 来定义能力,如果是这样,请你看看我在定义决定这个用户是否可以看到这些项目的属性时做错了什么?

4

1 回答 1

0

正如评论中所讨论的,你应该使用类似的东西

{:active => true, :closed => false, :sweep => { :disclosure => { :allusers => true } } }
于 2015-09-01T09:27:57.403 回答