美好的一天,这里有很多关于这个问题的问题,但它们对我没有帮助。
对于signed_in
用户,我的主页包含bookmarks
和folders
,其中包含属于此文件夹的书签。
home
方法位于static_pages
控制器中,如下所示:
def home
if signed_in?
@folder = current_user.folders.build
@folders = current_user.folders.all
@bookmark = current_user.bookmarks.build
@bookmarks = current_user.bookmarks.all
end
end
这是home.html.erb
<div class="span3">
<table class="table table-hover table-condensed">
<%= render @bookmarks %>
</table>
</div>
<div class="span3">
<table class="table table-hover table-condensed">
<%= render @folders %>
</table>
</div>
所以我有2个表格,所有bookmarks
和所有folders
属于current_user
这是_folder.html.erb
folders
文件夹中的views
<tr data-toggle="tooltip" data-placement="right" data-html="true">
<td data-href="<%= folder %>" class="bookmark"><i class="icon-folder-close"></i>
<%= link_to folder.name, folder_path %>
</td>
<td>
<%= link_to '<i class="icon-edit"></i>'.html_safe, '#' %>
</td>
<td>
<%= link_to '<i class="icon-trash"></i>'.html_safe, folder_path, method: :delete,
data: {confirm: 'Are you sure?'},
title: 'Delete folder ' + folder.name.to_s %>
</td>
</tr>
folders_controller.rb
,show
方法:
def show
@folder = Folder.find(params[:id])
@bookmarks = @folder.bookmarks.all
end
resources :folders
也存在routes.rb
点击主页上的localhost:3000/folder/1
,我只需要转到folder_name
。
这就是我得到的:
Routing Error
No route matches {:action=>"show", :controller=>"folders"}
在rake routes
中一切正常。
将localhost:3000/folder/1
放入浏览器时,它可以正常工作。
谢谢!
答案 0 :(得分:2)
尝试更换:
<%= link_to folder.name, folder_path %>
带
<%= link_to folder.name, folder_path(folder) %>
因为你需要为show动作提供id。
您可以获得更多信息here