5
AbilityクラスのカスタムCanCanアクションの一部を、ハッシュではなくブロックを使用するように変更していますが、実際にはアクセスを実際に制限していません。奇妙なことは、管理と:作成などのような組み込みのアクションは、まだブロックで正常に動作しているようです。CanCanカスタムアクションがブロックで動作しない
これは一例です:
OLD
# this one works
can :share, Project, :user_id => user.id
NEW
# this one doesn't work
can :share, Project do |project|
project.users.exists?(user)
end
誰でも前にこの問題が発生しましたか?
私はブロックを使用したくないと思っていますが、私の場合はそれを行う唯一の方法のようです。私は、プロジェクトとユーザーの一対多の関係から多対多に移行しました。今は、プロジェクトのすべてのユーザーをチェックする必要があります。 – Matt
ええと、デバッガを使って、CanCanで何が起きているのかを確認してみてください。あるいは、ファイルシステム上のcancan gemのファイルを開いて編集し、変数をダンプすることによって何が渡されるのかを見てください。これは私が他の何かを考えることができないときに私が道にとどまる方法です。もちろん、ファイルを元に戻す;) – Mirko