アプリのモデル設定に基づいて CanCan Ability モデルを作成した Rails 4 アプリがあります。テスト中に動作する場合と動作しない場合があります。問題が何であるかわかりません。ログには、問題を示すものは何もありません。とにかくそんなにきれいだとは思いません。この能力モデルを改善する方法について何か提案はありますか? 非常に冗長で紛らわしいようです。
if user
##
can :manage, User do |u|
case u.account
## If user is a Developer allow it to only be managed by itself (user)
when Developer
u == user
## If user is a Organization allow it to only be managed by it's founders
when Organization
u.account.founders.exists?(user)
else
false
end
end
can :manage, App do |a|
case a.appable
## If app belongs to a Developer allow it to only be managed by it owner (developer)
when Developer
a.appable.id == user.id
## If app belongs to a Organization allow it to only be managed by its organizations' founders
when Organization
a.appable.founders.exists?(user)
else
false
end
end
##
end