一般に、リソースの観点からルートを定義するのが最善です。したがって、という名前のリソースがある場合webblog
、ルートは次のように定義できます。
resources :weblogs
これによって生成されたルートを(で)チェックすると、、、、およびURLのアクションからコントローラーアクションへrake routes
のマッピングの標準セットが定義されていることがわかります。GET
PUT
POST
DELETE
webblogs GET /weblogs(.:format) weblogs#index
POST /weblogs(.:format) weblogs#create
new_webblog GET /weblogs/new(.:format) weblogs#new
webblog GET /weblogs/:id(.:format) weblogs#show
PUT /weblogs/:id(.:format) weblogs#update
DELETE /weblogs/:id(.:format) weblogs#destroy
これらのルートは、標準のコントローラーアクション、、、、などにマップさindex
れcreate
ます。new
show
何らかの理由で、を使用せずresources
にルートを定義する場合は、ルートを個別に定義できます。
get '/weblogs' => 'weblogs#index'
get '/weblogs/new' => 'weblogs#new'
get '/weblogs/:id/edit' => 'weblogs#edit'
put '/weblogs/:id' => 'weblogs#update'
...
get
などでルートを定義することによりput
、単一のURLを複数のコントローラーアクションにマップできます。たとえば、次のようになります。
get '/weblogs/myweblog' => 'weblogs#show_myweblog'
put '/weblogs/myweblog' => 'weblogs#update_myweblog'
post '/weblogs/myweblog' => 'weblogs#create_myweblog'
destroy '/weblogs/myweblog' => 'weblogs#destroymy_weblog'
これにより、URL / weblogs / myweblogがshow_myweblog
、GETリクエスト、update_myweblog
PUTリクエスト、create_myweblog
POSTリクエスト、およびdestroy_myweblog
DELETEリクエストのメソッドにマップされます。
または、標準を使用して、オプションを使用resources
してフルセットから必要なルートを選択できます。only
resources :weblogs, only: [:show, :edit]
詳細については、ドキュメントを参照してください。これがあなたの質問に答えることを願っています。そうでない場合は、コメントであなたがやりたいことの詳細を提供してください。