質問

map.root を呼び出してデフォルトのルートを設定する以外に、 routes.rb にタッチすることはありません。私は常にフォームのURLを使用することに満足しています...

/controller/action/perhaps_an_id

そしてそれは正常に動作します。

これは私を悪い人にしますか?完全に素晴らしいものを見逃していますか?

RESTfulデザインを採用しようとしたらどうなりますか?つまり、 routes.rb を編集する必要があるのでしょうか、それとも快適に無視し続けることができますか?

(The Rails Wayでこのトピックを読み上げようとしましたが、耐えられませんでした。)

役に立ちましたか?

解決

デフォルトのscaffoldingを使用してリソースを生成すると、rests.rbにrestfulルーティングが含まれます。

scaffoldを使用していない場合、scaffoldが機能している理由は、デフォルトで下部にあるデフォルトルートのためです:

    map.connect ':controller/:action/:id'
    map.connect ':controller/:action/:id.:format'

私は、実稼働アプリケーション用にこれらを削除し、代わりに公開する必要があるリソースのみが公開されるようにすることがベストプラクティスであることを追ってきました。 Rails 2.2では、次の方法でmap.resourcesからRESTfulメソッドを制限することもできます。

map.resources :posts, :only => [:index, :show]
map.resources :comments, :except => [:edit]

ネストされたリソース、名前付きルートなどでできることもたくさんあります。ドキュメントには多くの例があります( http://www.railsbrain.com/api/rails-2.2.2/doc/index.html?a=M000255& name = resources

他のヒント

特定のコントローラーやアクションなどに行く、マーケティング部門のカスタム名前付きルート(例:mycoolsite.com/free-trial)を作成することもできます。

Ryan Batesには、ルートでできるきちんとしたことのいくつかを紹介する一連のスクリーンキャストがあります: http: //railscasts.com/tags/14

RESTfulな設計に切り替えなかったからといって、あなたが悪い人になることはありません。また、変更する必要がないと感じたら、アプリを1.xのように書き続けてください。

Rails開発者の大半はRESTを採用しており、RESTに非常に満足しているようです。ここでは、すべてのプロREST引数を繰り返す必要はないと思います。

次のように、ルートファイルにリソースごとに1行追加する必要があります。

map.resources :posts

RESTfulに移行する場合は、routes.rbを編集してリソースを追加する必要があります。

map.resources :your_resource

またはネストされたリソースがある場合

    map.resources :people do |person|
      person.resources :ideas do |idea|
        ideas.resources :bad_ones
      end
    end
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top