QA@IT
«回答へ戻る

回答を投稿

具体的な「非推奨」の理由の1つは既に labocho さんが回答なさっていますので、別の観点から説明してみます。

まず前提として、2.x以降のRailsは「Web経由で色々なリソースを提供することでアプリケーションの機能を実現する」ためのフレームワークになりました。ですから、レールから降りずにRailsアプリを作る場合は、「このアプリケーションが提供するリソースはどんなものか」を考えるのがとてもとても肝要です。

ユーザや企画サイドから、画面イメージや画面遷移図でやってくる「要望」をそのままルーティングやアクションにひもづけるのではなく、まずはどういうリソースを操作したいのかという観点で考えなおすのがレールに乗るコツです。

で、その考えた結果を書いておくのが config/routes.rb なわけです。

そのため、単純な開発効率や、ルーティングの分かり易さ、共同開発者内での認識統一の図りやすさ、などの点では「match ':controller(/:action(/:id))(.:format)'」この一行の設定だけ書いておけば、全てのルーティングを一つのルールで理解できるため、分かり易く、事故も起き難いのではないか、というような気もしています。

これは慣れの問題かなと思いますが、私なんかはresourcesが書いてあると「ああこのアプリはこういうリソースを提供してるのね。only: とかついてるあたり、このリソースは読み取り専用なのね」と読めるのはとても嬉しいです。全体を概観しやすく『ルーティングの分かり易さ、共同開発者内での認識統一の図りやすさ』が向上します。

ということで、

(ルーティングの設定に掛ける時間も短縮でき、その分、本質的なアプリケーションの開発に割ける時間に充当できるとも考えられます。)

ルーティングというか、アプリケーションはどんなリソースを提供するか、というのを考えるはまさに『本質的なアプリケーション開発』ではないでしょうか。

慣れや考え方の問題ではあるので、どうしても:controller/:action/:idを使うのを止めることはできませんが、Railsを使う以上はresourcesをうまく使いこなす方向に慣れたほうがよいと思います。

とはいえ、この回答はやや抽象的にすぎますね。レールに乗った場合の現世利益は http://qa.atmarkit.co.jp/q/2092#answer_14495 にも書いていますので、よろしければご覧ください。

具体的な「非推奨」の理由の1つは既に labocho さんが回答なさっていますので、別の観点から説明してみます。

まず前提として、2.x以降のRailsは「Web経由で色々なリソースを提供することでアプリケーションの機能を実現する」ためのフレームワークになりました。ですから、レールから降りずにRailsアプリを作る場合は、「このアプリケーションが提供するリソースはどんなものか」を考えるのがとてもとても肝要です。

ユーザや企画サイドから、画面イメージや画面遷移図でやってくる「要望」をそのままルーティングやアクションにひもづけるのではなく、まずはどういうリソースを操作したいのかという観点で考えなおすのがレールに乗るコツです。

で、その考えた結果を書いておくのが config/routes.rb なわけです。

> そのため、単純な開発効率や、ルーティングの分かり易さ、共同開発者内での認識統一の図りやすさ、などの点では「match ':controller(/:action(/:id))(.:format)'」この一行の設定だけ書いておけば、全てのルーティングを一つのルールで理解できるため、分かり易く、事故も起き難いのではないか、というような気もしています。

これは慣れの問題かなと思いますが、私なんかはresourcesが書いてあると「ああこのアプリはこういうリソースを提供してるのね。only: とかついてるあたり、このリソースは読み取り専用なのね」と読めるのはとても嬉しいです。全体を概観しやすく『ルーティングの分かり易さ、共同開発者内での認識統一の図りやすさ』が向上します。

ということで、

> (ルーティングの設定に掛ける時間も短縮でき、その分、本質的なアプリケーションの開発に割ける時間に充当できるとも考えられます。)

ルーティングというか、アプリケーションはどんなリソースを提供するか、というのを考えるはまさに『本質的なアプリケーション開発』ではないでしょうか。

慣れや考え方の問題ではあるので、どうしても`:controller/:action/:id`を使うのを止めることはできませんが、Railsを使う以上はresourcesをうまく使いこなす方向に慣れたほうがよいと思います。

とはいえ、この回答はやや抽象的にすぎますね。レールに乗った場合の現世利益は http://qa.atmarkit.co.jp/q/2092#answer_14495 にも書いていますので、よろしければご覧ください。