2013-10-17 29 views
1

我正在试验巫术和铁轨4,我很努力了解如何防止用户编辑或销毁不属于他们的内容。我说,我有一个博客帖子和地方面板这就好比Rails和魔法宝石和用户权限内容编辑

<% if current_user? %> 
    <ul> 
    <li><%= link_to "edit", edit_post_path %></li> 
    <li><%= link_to "destroy", @post, method: :delete %></li> 
    </ul> 
<% end %> 

谁被注销无法看到这些控件当然用户,但谁登录的用户可以删除或自由编辑的职位。

回答

3

巫术是为了“认证”,但你面临的问题是“授权”。这两个是不同的概念。

“认证”是为了识别这个用户是谁,但它不能判断他可以做什么。

“授权”如果没有“authenticaton”就无能为力,但它的工作是不同的。它可以判断这个用户是否可以做些什么。

所以你的问题属于“授权”领域,这不是巫师的工作。

相反,您可以使用CanCan或其他gem来获得授权。

示例代码

def user 
    # Can delete and edit his own post 
    can :manage, Post, :user_id => user.id 
end 

您可以检查惨惨的详细信息:https://github.com/ryanb/cancan

+0

感谢你为这个,我想我会得到我的手惨惨 –

+0

是的,你一定要:) –

+0

尼斯,清晰,简单地回答一个复杂的问题。优胜者。 –