3

「もの」のショービューで機能するルートがあります。このオブジェクトはネストされています。これは作業ルートです:

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

私の問題は、これらのオブジェクトのインデックスで、このリンクを 1 レベル上に表示したいということです。リンクがループして表示され、リンクに :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 に答える