RoR + CanCan: проверить вложенное состояние в одной строке
У меня есть модели User и Post. Пользователь имеет много сообщений, и сообщение принадлежит пользователю. Я хочу разрешить администратору удалять пользователя, только если у него нет сообщений, так что теперь у меня есть в моей способности.rb:
can :destroy, User do |u|
u.posts.empty?
end
Но могу ли я написать это в одну строку (что-то вроде can :destroy, User, :posts => empty?
)?
2 ответа
Решение
Вы можете использовать однострочный блок
can(:destroy, User) { |u| u.posts.empty? }