2016-08-22 42 views
0

我正在尝试创建一个“我的文件”页面,其中列出了用户上传的文档,但无法过滤每个用户的文档。设计列表用户文档

现在它显示上传的所有文档,而不是与上传文档的用户关联的文档。

我使用的设计,因为我一直试图改变用户

if语句,以各种不同的条件,但似乎无法过滤与每个用户相关的文件。

这是我对“我的文件”页面代码:

<% @documents.each do |document| %> 
    <% if @document = current_user.documents.find_by(params[:user_id]) %> 
     <%= link_to document.title, document %>: <%= link_to "Download", document.pdf(:original, false) %> 
    <% end %> 
<% end %> 

这是我对myfiles的页面文件控制器代码:

def myfiles 
    @documents = Document.all 
end 

有一个简单的方法,我可以过滤与每个用户关联的文档?

回答

0

此方法将显示出与只当前用户相关联的文档。

Controller文件:

def myfiles 
if current_user 
    @documents = current_user.documents 
else 
    @documents = Document.all 
end 
end 

查看文件:

<% @documents.each do |document| %> 
<%= link_to document.title, document %>: <%= link_to "Download", document.pdf(:original, false) %> 
<% end %> 
0

Rails find_by返回找到的第一条记录。您可能正在寻找where

在控制器:

@documents = if params[:user_id] 
    current_user.documents.where(user_id: params[:user_id]) 
else 
    Document.all 
end 

在视图:

<% @documents.each do |document| %> 
    <%= link_to document.title, document %>: <%= link_to "Download", document.pdf(:original, false) %> 
<% end %> 

http://apidock.com/rails/ActiveRecord/FinderMethods/find_by http://apidock.com/rails/ActiveRecord/QueryMethods/where

+0

这仍然显示所有文件,而不是与单个用户 –

+0

哪里PARAM相关的文件:USER_ID从何而来? – codyeatworld