1

好吧,我有一个应用程序,用户可以在其中创建集合,一旦创建集合,他们就可以为该集合创建产品。所以每个系列都有很多产品,每个产品都属于一个系列。在 Collections 视图和 Products 视图上,链接效果很好。为了澄清产品通过与它们相关联的 collection_id 进行关联,以告诉他们它们属于哪个集合。我通常适用于产品控制器和集合控制器的方法是这样的

def show
  @collection = Collection.find(params[:collection_id])
  @design = @collection.designs.all
end

我遇到的问题是在一个静态页面上......让我们称之为主页。在此页面上,我列出了所有产品。如果您单击一个产品,它会将您带到相应的产品页面(通过集合,即 localhost/collections/2/products/5....这些数字与集合和产品的 id 相关)。

我正在使用我在 Collection 和 Product 视图中使用的相同链接,即

link_to collection_design_path(@collection, design)

就像我提到的这些链接非常适合收藏和产品视图。这是我的主页的 static_pages_controller

def home
  @design = Design.all
end

它显示了所有的设计,但链接看起来像这样

localhost/collections//designs/3 

它跳过了集合的 ID。有人对此有解决方案吗?我以前问过这个问题,但不幸的是,答案都是不正确的。

编辑

设计和产品是一回事。我用名称设计搭建脚手架,所以我使用它,但它们基本上是产品......以防让任何阅读者感到困惑

编辑 这是路线文件

resources :collections do
  resources :designs do
    member do
      post :like
      post :unlike
    end
  end
end

您可以忽略喜欢和不喜欢..这只是为了喜欢和不喜欢产品/设计..路线文件向您展示了设计如何嵌套在收藏链接中

4

2 回答 2

1

如果您遍历您的@design集合:

<ul>
  <% @design.each do |design| %>
    <li><%= link_to collection_design_path(design.collection, design) %></li>
  <% end %>
</ul>
于 2013-09-07T06:21:19.330 回答
0

你的路线很完美。很可能您@collection的 ID 为零,因为尚未保存。

你也可以试试

<%= link_to "link" [@collection, design] %>
于 2013-09-07T04:09:04.590 回答