0

Rails3.2.8で書かれたeコマースWebサイトがあり、音楽イベントのチケットを販売しています。これまで、アプリケーションで単純なRESTfulルートを使用してきました。

/ => default route: /events
/events
/events/1
/events/1/new
/events/2
...

以前はすべて同じ場所で開催されていましたが、今後は「モルンビ」と「マラカナン」の2か所になります。場所はアプリケーションのモデルであり、イベント間の非常に重要な違いです。そこで、地名をパスの一部にし、次のようなルートを作成します。

/ => default route: page to choose place
/morumbi => same as /morumbi/events
/morumbi/events/1
/morumbi/events/1/new
/maracana => same as /maracana/events
/maracana/events/2
...

私はこの方法を使ってそれを行う方法を知っていますが#match、私はすでにはるかに保守しやすい#resources方法で作成されたかなりの数のルートを持っているので、それらを保持したいと思います。

の使用を回避する解決策を知っています#matchか?

4

1 に答える 1

3

#scope次の方法を使用する必要があります。

scope path: ':place_name', as: 'place' do
  resources :events
  ...
end

そのため、パラメーターとを使用してGET /morumbi/events/1呼び出します。EventsController#showid: '1'place_name: 'morumbi'

于 2012-10-05T15:11:47.997 に答える