2008-10-19 48 views
3

我有一個Web用戶及其文檔的應用程序。每個用戶都可以有許多文件:如何僅顯示屬於某個用戶的項目(使用restful_authentication)?

user.rb:

has_many :documents 

document.rb:

belongs_to :user 

document_controller.rb:

def index 
    @documents = Document.find(:all) 
end 

我使用restful_authentication插件。這是我的問題:如何讓控制器只顯示屬於每個用戶的文檔?現在它顯示了所有用戶的所有文檔。

我使用的是最新版本的Rails。

回答

2

在Association Join Models部分的rails API中查看here

但是請注意,Restful身份驗證不會控制訪問權限,以便將用戶限制爲只有他們自己的記錄,尤其是對於安靜的路由。他們仍然可以通過一旦被登錄進入的網址值查看其他用戶的記錄

對於您可能要考慮Restful ACL

7

您在User類中爲您的Document類設置關係。這將一個方法自動添加到返回與特定用戶的所有文件的列表中的用戶對象:

def index 
    @documents = @current_user.documents 
end 

其他自動添加方法見documentation

3
def index 
    @documents = Document.find(:all, :conditions => {:user_id => session[:user_id]}) 
end 
3

試試這個:

def index 
    @documents = Document.where(:user_id => current_user.id) 
end 
相關問題