14

コントローラーを生成してルートを変更しましたが、リンクを開くとローカル サーバーでエラーが発生します。

コントローラーとルートの生成

rails generate controller StaticPages home about team contact

routes.rb を変更する

MyApp::Application.routes.draw do
  root to: 'static_pages#home'

  match '/about',    to: 'static_pages#about'
  match '/team',     to: 'static_pages#team'
  match '/contact',  to: 'static_pages#contact'
end

ルート パスは機能しますが、「about」、「team」、または「contact」のいずれのリンクも機能しません。これは私が得るエラーです:

matchHTTP メソッドを指定せずにルーターでメソッドを使用しないでください。アクションを GET と POST の両方に公開したい場合は、via: [:get, :post]オプションを追加してください。アクションを GET に公開したい場合getは、ルーターで: の代わりに: を使用してください: match "controller#action" Do: get "controller#action""

「一致」を使用できないのはなぜですか?

4

3 に答える 3

31

matchメソッドは廃止されました。

getGET およびpostPOSTに使用します。

get '/about', to: 'static_pages#about'

于 2013-08-21T22:53:54.067 に答える
15

を使用できます。オプションmatchを追加する必要があります。via:

match '/about',    to: 'static_pages#about', via: :get
match '/team',     to: 'static_pages#team', via: :get
match '/contact',  to: 'static_pages#contact', via: :get

via:必要に応じて、他の HTTP 動詞を渡すこともできます。via: [:get, :post]

出典: Rails ルーティング ガイド

于 2013-08-21T22:49:19.697 に答える