Ваше первое объявление ...
has_permission_on :articles, :to => [:edit, :update, :show] do
if_attribute :user => is { user }
end
... отлично работает, потому что если :user
равно user
(который является текущим зарегистрированным пользователем - current_user), у вас есть разрешение навыполните объявленные действия с :articles
.
Но если вы посмотрите на второе ...
has_permission_on :comments, :to => [:edit, :update] do
if_attribute :article_id => is { user }
end
, вы увидите, что атрибут :article_id
никогда не будет равнымна текущий вход в систему user
.
Теперь я сам новичок в Rails, и я просто использовал некоторые базовые функции декларативного разрешения , поэтому я не знаю точного ответа натвоя проблема.Но я думаю, вы должны найти способ доступа к статьям этого user
, что-то вроде if_attribute :article_id => is { user.articles.id }
.
Возможно, вы найдете ответ здесь в документации