3

我有一条适用于我的“事物”显示视图的路线。该对象是嵌套的。这是工作路线:

match 'parents/:parent_id/childs/:id/thing' => 'childs#thing', :as => :thing

我的问题是我想让这个链接在这些对象的索引中出现上一层。该链接出现在一个循环中,当我对链接使用 :thing 符号时,它表示它没有路由。现在我知道出了什么问题,它没有在循环的每次迭代中获取对象的特定 ID。但我不知道如何解决这个问题。所以基本上我认为我正在寻找的是:

match 'parents/:parent_id/childs/(way to pass loop id goes here)/thing' => 'childs#thing', :as => :thing

有谁知道如何做到这一点?

4

1 回答 1

3

您可以在路由声明中为参数指定您想要的名称,例如:index

match 'parents/:parent_id/childs/:index/thing' => 'childs#thing', :as => :thing

接下来,在 中ChildController,您将获得索引值params[:index]

def thing
  index = params[:index]
  # Example: find item by index using their creation date
  child = Child.order("created_at ASC").offset(index).limit(1).first

end
于 2012-12-04T14:47:55.813 回答