只是想知道是否有更好的方法来执行以下操作:
用户 has_many 项目
项目 has_many 列表
列出 has_many 项
某些用户只能访问某些项目。但是,如果用户有权访问某个项目,则该用户可以访问属于该项目的所有列表和项目。
这是我要清理的方法:
def check_for_user_access(resource, resource_class, user)
case resource_class
when 'Project'
if resource.user == user
return true
end
when 'List'
if resource.project.user == user
return true
end
when 'Item'
if resource.list.project.user == user
return true
end
else
return false
end
end
我不想要 List 和 Item 中的 user_id 属性,因为访问实际上只是与 Project 相关联。
有没有比使用 switch 语句来环绕略有不同的比较更好的方法呢?
提前致谢!