【发布时间】:2018-03-25 20:30:48
【问题描述】:
我正在我的网站上构建一个画廊,但我对控制器中的路由和相关操作有点卡住了。
基本上我有三个模型:Collection、Album 和 Photo
Collection 可以包含其他 Collections 或 Albums 但不能同时包含两者。一个Album 然后包含Photos。
在我的根/gallery 路径中,我路由到索引视图。这将传递具有 nil parent_id 集的集合列表并显示视图。一切顺利。
现在,我想链接这些集合标题,以便将集合的 id 传回。此时,我通常需要使用“gallery_collection_path”的链接帮助器,但这会直接指向显示视图。在我的情况下,索引和显示视图看起来是相同的,直到我进入包含专辑的集合,然后我将在专辑索引视图中。
我遇到困难的地方是如何在我的路由文件中构造它以及集合名称上的 link_to 应该是什么样的。
目前在我的routes.rb 文件中:
namespace :gallery do
get 'collections/:collection_id', to: 'collections#index'
root to: 'collections#index'
end
但我不认为这是正确的。我尝试使用url_for 来生成这样的 URL:
<%= link_to collection.title, url_for(['gallery', 'collections', collection.id]) %>
但我不断收到以下错误:
undefined methodto_model' for 71:Fixnum`
谁能把我推向正确的方向?
【问题讨论】:
标签: ruby-on-rails url routing