足場を生成した後、Rails=を使用すると、新しいitem
を作成するitems.xml
にPOSTを実行できます。 items.xml
へのGETは、それらをすべてリストします。Railsコントローラーのメソッドを指定する(それぞれ[create
またはindex
)は私が実行しているアクションのタイプに基づいて呼び出されますか?
より具体的には、POST methodAを呼び出しますが、同じURLへのGETはmethodBを呼び出します。これはどこで指定されますか?Railsはindex
コントローラーのメソッド?
[〜#〜] 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
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 :items
でconfig/routes.rb
を指定すると、これら7つのメソッドが「無料」で取得できます。コンソールにrake routes
と入力することにより、いつでもアプリケーション内のすべてのルートをリストできます。
これについて学ぶのに最適な場所は、 Routing Guide です。
POSTのみの使用方法を知りたいですか?たとえば、これを実行します。
resources :items, :only => [:create]
..等。ちなみにこれはRails 3用であり、POST作成する単一のリソースを生成します。または、RESTセットの本当に小さなサブセットのみが必要な場合は、次のようにします。
match 'items/:id' => "items#create', :via => :post
などなど.
Don Werveが言ったように、routes.rbファイルを見てください。そこにはおそらく次のようなものがあります:
map.resources :items
ここでRailsがPOSTとGET要求を特定のアクションにリンクします。これがどのように機能するかを確認するには、他の回答のリンクを参照してください。トン。
すべてのルートとそれらがリンクするアクションに対して、rake routes
コマンドへRailsディレクトリのルートにいるときにプロンプトを表示します。これにより、scaffoldが提供するすべての情報が(ルーティングに関して)表示されます。
これは大いに役立ちますが、あなたの質問に対する直接的な答えではありません。次のコマンドは、アプリが使用するマッピングを一覧表示するため、すべての詳細を覚えたり推測したりする必要はありません。
$ rake routes
より直接的に答えるために、これはRailsが使用する慣習です。routes.rbに次のようなものを入れると、このマッピングを設定します。
map.resources :items
map.resourcesは、RESTルートとパスヘルパーも自動的に提供するメソッドです。これは、Railsの安静なルーティングがどのように機能するかを既に知っており、理解している場合に便利な機能です。学習の妨げになるビットRailsあまりにも多くが隠されているため。
Railsguides にはNice routes guide があります。
正直に言うと、Rails Webサイトのルーティングドキュメントを間違えることはありません。これは、次のステップに進み、リソースの快適さ(ほとんどのアプリでは問題ありません) )使用可能な堅牢なルーティング機能を実際に特定します。