2009-05-24 4 views
1

は単にパトリック・レンツによってレール...、我々がすぐにその後、routes.rbを、map.resources:ストーリーは即座にストーリーをRESTfulにしますか?多分私が何かを逃した私は読んでいた

map.resources :stories 

を入れたときに、コントローラは現在、特別な規則を持っているとなると思わストーリーはRESTfulなリソースですか?おそらく作者はリソースという言葉を使いましたが、それがRESTfulであるとは言いませんでしたが、同じものですか?

+0

時間を無駄にする話。これを理解するのに約2時間かかりました – Gutzofter

答えて

4

ルートにあると、安らかなアプリケーションを構築するための標準的なルートが自動的に取得されます。例:

new_story GET  /story/new(.:format) {:action=>"new", :controller=>"stories"} 
edit_story GET  /story/edit(.:format) {:action=>"edit", :controller=>"stories"} 
    story GET  /story(.:format)  {:action=>"show", :controller=>"stories"} 
      PUT  /story(.:format)  {:action=>"update", :controller=>"stories"} 
      DELETE /story(.:format)  {:action=>"destroy", :controller=>"stories"} 
      POST /story(.:format)  {:action=>"create", :controller=>"stories"} 

ルートファイルにこの1行だけを入れるだけで、これらすべてのパスを使用できます。ストーリーコントローラの新しい機能、編集、表示、更新、破棄、アクションの作成に適切な機能を確実に提供するだけで、あなたは安らかなデザインになります。

可能なルートが賢明であるかを確認するためには、あなたのアプリケーションフォルダに移動し、コマンドを与えることができますが:

rake routes 

これは何に基づいて、使用可能なすべてのパスの出力に起こっていますあなたのルートファイルに入力しました。

1

はい。これをルートに追加すると、Storyコントローラーは、予想される方法で共通のREST動詞に応答します。

2

BUT !!!あなたのコントローラーに他のアクションがある場合は、その上に追加のルートを導入しない限り見つけられません.resources行!だから、

あなたはmap.resourcesラインの前にmap.connect行を含める必要が話コントローラでturn_pageというアクションがある場合 - このスニペットのように:

map.connect 'stories/turn_page', :controller => 'stories', :action => 'turn_page' 
map.resources :stories 

希望誰かを助けます!すべての例が.resourcesステートメントで定義された "通常の"ルートまたはRESTセットであるため、私は何時間も働いていました。

関連する問題