質問: Railsの命名規則についての質問です。 RailsではController名を「users」のように複数形するのが基本だと思いますが、「news」や「search」のように複数形にできないものはどのように命名したらよいのでしょうか? ただ単に「news,search」のように「s,es」をつけないだけでよいのでしょうか? 初歩的な質問で申し訳ないですが、よろしくお願いお願いします。
回答: Railsガイド コントローラの命名規則より抜粋 > > Railsのコントローラ名(ここでは「Controller」という文字は除きます)は、基本的に名前の最後の部分に「複数形」を使います。ただしこれは絶対的に守らなければならないというものではありません (実際 ApplicationControllerはApplicationが単数になっています)。たとえば、ClientsControllerの方がClientControllerより好ましく、SiteAdminsControllerはSiteAdminControllerやSitesAdminsControllerよりも好ましい、といった具合です。 > > > しかし、この規則には従っておくことをお勧めします。その理由は、resourcesなどのデフォルトのルーティングジェネレータがそのまま利用できるのと、名前付きルーティングヘルパーの用法がアプリケーション全体で一貫するからです。コントローラ名の最後が複数形になっていないと、たとえばresourcesで簡単に一括ルーティングできず、:pathや:controllerをいちいち指定しなければなりません。詳細については、レイアウト・レンダリングガイドを参照してください。 > > > 個人的には、コントローラーの命名で迷うようであれば、一度、scaffoldで作って参考にしてみるのも良いかと良いと思います。 ・manモデルは、menが作成されました。 ・searchモデルは、searchesが作成されました。 ・newsモデルは、newsが作成されました。