这似乎是一项简单的任务,但我无法找到“轨道”的方法来做到这一点。
我正在使用Authlogic对用户进行身份验证,每个用户都有_many:博客,:图片等。我不知道该怎么做才限制用户A博客的访问权限(显示/更新/编辑/删除)用户A.
看来我有三种选择。
其他人发现什么是解决此问题的最佳方法?
作为一个额外的问题,假设用户has_many:博客,Blog has_many:sections和Section has_many:images。在这种情况下,属于博客的所有元素都需要限制为用户A,但只有博客具有user_id列。将相同的身份验证条件附加到章节和图像的最有效/优雅的方法是什么?
谢谢, 麦克
答案 0 :(得分:1)
另一种选择可能是使用cancan
宝石。 https://github.com/ryanb/cancan
这非常简单,你也可以解决你的奖金问题。
例如:
can :manage, Blog, :user_id=>user.id
can :manage, Section, :blog=>{:user_id=>user.id}
can :manage, Image, :section=>{:blog=>{:user_id=>user.id}}
如果你有
,这个设置很好Blog belongs_to User
Section belongs_to Blog
Image belongs_to Section
有关如何设置其余内容的信息,请参阅Wiki。
哦,我忘了还有关于cancan
的截屏视频答案 1 :(得分:0)
使用before_filter和检查用户是否经过身份验证的函数。