有很多 Rails 插件可以处理用户权限。我对 hobo gem 中的实现印象深刻,但我不确定我是否可以只使用这个功能而不是其他部分。GateKeeper 是一个非常聪明的实现,但有一些错误,虽然它足够小,我可能自己可以修复它。Restful_ACL 为您提供了一个用于检查创建的类方法,这意味着您无法对相关实例进行任何检查(不确定它是否会进行范围查找)。
我想要提供 ActiveRecord#find 的范围版本的东西,它只找到当前用户被允许看到的东西。这应该足够强大,您只能看到您或您的一位朋友拥有的画廊中的图片。
作为奖励,它可以防止您无权执行的创建或更新(在 before_* 或验证步骤中),包括将您自己的记录与不同的用户或画廊相关联,或创建此类记录。