0

「リスト」モデルと「ListsController」コントローラーがあります。デフォルトでは、リストのルートは /lists/1、/lists/1/edit/ などでした。routes.rb ファイルを変更して、表示パスが "/:id"、新しいパスが "/新着"。

私のルートファイルは次のとおりです。

ToDo::Application.routes.draw do
  root to: 'pages#home'

  match '/about', to: 'pages#about'
  match '/contact', to: 'pages#contact'
  match '/help', to: 'pages#help'

  resources :lists

  match '/new', to: 'lists#new'
  match '/:id', to: 'lists#show'
  match '/:id/new', to: 'lists#new_item'
end

「localhost:3000/1」を実行することでリストにアクセスできます。しかし今、私は link_to を使おうとしています。"link_to "List", list" を実行すると、"localhost:3000/lists/1" である元のルートへの URL が生成されます。

これを修正する方法を知っている人はいますか?ルートで改善すべきことはありますか?

ありがとう!

4

2 に答える 2

1

を使用する代わりに、match単にリソースの代替パスを提供できます。

resources :lists, path: ''
于 2013-06-22T09:36:45.190 に答える
0

as: 'name'一致ルールの名前付きルートを作成し、 によって提供される名前付きルートを上書きするには、オプションを指定する必要がありますresource :lists

resource :lists

match '/new', to: 'lists#new', as: 'new_list'
match '/:id', to: 'lists#show', as: 'list'
于 2013-06-22T09:47:47.707 に答える