web-dev-qa-db-ja.com

Rails POST、PUT、GET

足場を生成した後、Rails=を使用すると、新しいitemを作成するitems.xmlにPOSTを実行できます。 items.xmlへのGETは、それらをすべてリストします。Railsコントローラーのメソッドを指定する(それぞれ[createまたはindex)は私が実行しているアクションのタイプに基づいて呼び出されますか?

より具体的には、POST methodAを呼び出しますが、同じURLへのGETはmethodBを呼び出します。これはどこで指定されますか?Railsはindexコントローラーのメソッド?

56
geowa4

[〜#〜] rest [〜#〜] で指定されていると思います。 yaのリストは次のとおりです。

GET    /items        #=> index
GET    /items/1      #=> show
GET    /items/new    #=> new
GET    /items/1/edit #=> edit
PUT    /items/1      #=> update
POST   /items        #=> create
DELETE /items/1      #=> destroy

addに編集して、これらのすべてのルートを取得します。config/ routes.rbで、単にmap.resources :items

89
Matt Grande

Railsでは、慣例によりRESTfulリソース用に7つのコントローラーメソッドを定義しています。彼らです:

アクションHTTPメソッド目的
 ------------------------------------ ------------------------------------- 
 index GETリソースのコレクションを表示します
 show GET単一のリソースを表示します
 new GET新しいリソースを作成するためのフォームを表示します
 create POST新しいリソースを作成します)
 edit GET既存のリソースを編集するためのフォームを表示します
 update PUT既存のリソースを更新します(編集はこれに送信します)
 destroy DELETE単一のリソースを破棄します

Webブラウザは一般にGETとPOSTのみをサポートしているため、Railsは非表示フィールドを使用して、これらを必要に応じてPUTおよびDELETEリクエストに変換します。

map.resources :itemsconfig/routes.rbを指定すると、これら7つのメソッドが「無料」で取得できます。コンソールにrake routesと入力することにより、いつでもアプリケーション内のすべてのルートをリストできます。

27
John Topley

これについて学ぶのに最適な場所は、 Routing Guide です。

10
Don Werve

POSTのみの使用方法を知りたいですか?たとえば、これを実行します。

resources :items, :only => [:create]

..等。ちなみにこれはRails 3用であり、POST作成する単一のリソースを生成します。または、RESTセットの本当に小さなサブセットのみが必要な場合は、次のようにします。

match 'items/:id' => "items#create', :via => :post

などなど.

6
buddhamagnet

Don Werveが言ったように、routes.rbファイルを見てください。そこにはおそらく次のようなものがあります:

map.resources :items

ここでRailsがPOSTとGET要求を特定のアクションにリンクします。これがどのように機能するかを確認するには、他の回答のリンクを参照してください。トン。

すべてのルートとそれらがリンクするアクションに対して、rake routesコマンドへRailsディレクトリのルートにいるときにプロンプ​​トを表示します。これにより、scaffoldが提供するすべての情報が(ルーティングに関して)表示されます。

5
vrish88

これは大いに役立ちますが、あなたの質問に対する直接的な答えではありません。次のコマンドは、アプリが使用するマッピングを一覧表示するため、すべての詳細を覚えたり推測したりする必要はありません。

$ rake routes

より直接的に答えるために、これはRailsが使用する慣習です。routes.rbに次のようなものを入れると、このマッピングを設定します。

map.resources :items
5
jshen

map.resourcesは、RESTルートとパスヘルパーも自動的に提供するメソッドです。これは、Railsの安静なルーティングがどのように機能するかを既に知っており、理解している場合に便利な機能です。学習の妨げになるビットRailsあまりにも多くが隠されているため。

Railsguides にはNice routes guide があります。

3
srboisvert

正直に言うと、Rails Webサイトのルーティングドキュメントを間違えることはありません。これは、次のステップに進み、リソースの快適さ(ほとんどのアプリでは問題ありません) )使用可能な堅牢なルーティング機能を実際に特定します。

http://guides.rubyonrails.org/routing.html

1
Michael