1

ドキュメントを確認しましたが、グローバル ロールを 1 つ追加した場合にのみ機能します。グローバルロールなしで複数のロールチェックを行うにはどうすればよいですか?

user.add_role :admin
user.add_role(:user, group)
user.add_role(:mentor, group)
user.has_all_roles? :admin, {:name => :mentor, :resource => group} 
=> true
user.has_all_roles? {:name => :mentor, :resource => group}, {:name => :user, :resource => group}
=> SyntaxError: (irb):27: syntax error, unexpected =>, expecting '}'
user.has_any_role? :admin, {:name => :mentor, :resource => group}, {:name => :user, :resource => group}
=> true
user.has_any_role? {:name => :mentor, :resource => group}, {:name => :user, :resource => group}
=> SyntaxError: (irb):30: syntax error, unexpected =>, expecting '}'
4

1 に答える 1

2

非常に面倒ですが、簡単に解決できます!理由は、書くことによって

user.has_all_roles? {...}

あなたはルビーに言います:私はこのメソッド呼び出しにブロックを与えています...そしてそれは明らかにあなたが望むものではありません.

簡単な修正: メソッド呼び出しに括弧を追加するだけです:

user.has_all_roles?( {...} )
于 2014-04-21T06:00:10.850 に答える