CanCan пользовательские действия не работают с блоками - PullRequest
6 голосов
/ 20 января 2011

Я изменяю некоторые из моих пользовательских действий CanCan в классе Ability, чтобы использовать блоки вместо просто хеша, но теперь они перестали фактически ограничивать доступ. Странно то, что встроенные действия, такие как: manage и: create, и т. Д., Похоже, все еще отлично работают с блоками.

Это один пример:

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

Кто-нибудь сталкивался с этой проблемой раньше?

1 Ответ

1 голос
/ 20 января 2011

Я не могу много сказать о вашем нежелательном поведении, но вам, вероятно, не следует менять хеши для блокировки, так как эти хэши дают вам возможность извлекать записи. Внимательно прочитайте эту статью в CanCan wiki.

...