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? }

Попробуй это:

can :destroy, User {|u| u.posts.empty? }
Другие вопросы по тегам