2011-07-10 49 views
0

我有兩個型號:的Rails協會質疑

Users, and Articles 

每個用戶能夠創建一個文章,但只能修改自己的文章?

有人可以提供一個例子嗎? (模型,控制器和視圖請?)

感謝

編輯

我不想整個代碼。我可以使用腳手架獲得大部分代碼。我需要修改,我必須做到這一點。我最關心的是如何只允許文章的作者編輯它。這就是我所要求的。

+1

我不確定任何人都願意爲您編寫所有代碼。 –

+0

我不想要整個代碼。我可以使用腳手架獲得大部分代碼。我需要修改,我必須做到這一點。我最關心的是如何只允許文章的作者編輯它。這就是我所要求的。 – Immo

+0

回答這個,看看:http://railscasts.com/episodes/192-authorization-with-cancan – apneadiving

回答

0

假設某條belongs_to :user和你有一個身份驗證設置,讓你一個current_user方法,你應該能夠做這樣的事情在你的ArticlesController:

def edit 
    @article = Article.find(params[:id]) 

    if @article.user == current_user 
    render :edit 
    else 
    flash[:alert] = "You don't have permission to edit this article." 
    redirect_to some_path 
    end 
end 

您還需要類似的東西爲您update方法。

1

我不能寫出完整的示例代碼,但我至少可以將您指向正確的方向。

您正在描述兩個模型之間的一對多關聯。 This guide是我在研究如何在Rails中設置這些關聯時看到的最好的。

一旦你準備好了,你可以很容易地限制基於文章所有權的訪問。對於這個簡單的事情,你可能不需要權限寶石,但有一些可靠的寶石。

我會保護控制器和視圖中的訪問權限。您可以簡單地根據視圖上的文章對象以及可以在過濾器之前使用的控制器來檢查current_user以保護文章。

如果您進一步瞭解這條道路並有更具體的問題,我很樂意嘗試並回答它們。