2013-10-17 68 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

尼斯,清晰,簡單地回答一個複雜的問題。優勝者。 –