Edited at

Railsの命名規則についてのメモ

More than 3 years have passed since last update.

railsでモデルやコントローラー名の命名規則でたまにミスることがあるので、改めてまとめてみた。

例えばとあるWebサービスで会員情報をMemberというモデルで管理する場合、


モデル名: Member

モデル名は先頭が大文字。複数の単語を用いる場合は、"WomenMember"みたいに先頭が大文字の単語をつなげる。しかしファイル名は小文字で複数の単語はアンダースコアでつなげる。"women_member.rb"みたいな感じ。

class Member < ActiveRecord::Base

end


テーブル名: members

テーブル名は小文字で複数形に。

class CreateMembers < ActiveRecord::Migration

def change
create_table :members do |t|
t.timestamps
end
end
end


コントローラー名: Member::SessionsController

例えばsession関係の処理を行うためのコントローラー"sessions"を作成する場合は、"rails g controller sessions"となり、コントローラー名は基本的に複数形でも単数形でもいい?・・・

class Member::SessionsController < ApplicationController

def new
end

def create
end

def destroy
end
end

ルーティングでは、

namespace :member do

root 'top#index'
get 'login' => 'sessions#new', as: :login
post 'session' => 'sessions#create', as: :session
delete 'session' => 'sessions#destroy'
end

となる。で、リダイレクトやリンク等でアクションを指定する時は、

redirect_to :member_login

みたいな感じ。

他にも言及すべきことがあったら思い出し次第追加したいです。