DBの構造を考える
1.DBの基盤となるテーブルを考える
どんなテーブル構造にするか?また、そのためにはどんなカラムの追加が必要か?(例:name,emailなど)
内容がまとまったら、まずrails db:create
でデータベース自体を作成します。ただし、この段階ではまだテーブルは作成されていません。
2.モデルを作る(命名規則は最初の文字が大文字の単数形)
基本構文は以下の通りです。
rails g model モデル名 カラム名:データ型
例えば以下のようになります。
rails g model Content name:string email:string
rails g modelを実行するとモデルと同時にマイグレーションファイルも生成されます。なのでrails g migrationは実行不要です。もし、先にマイグレーションファイルを作成してしまったら
rails g model モデル名 --skip-migration
でmodelだけを作成し、マイグレーションファイルは作成しないようにしてください
3.rails db:migrateを実行してテーブルを作成する
rails db:migrateを実行することで初めてテーブルが作成されます。
コントローラを作る(この時controller名は小文字の複数形にすること)
基本構文は以下の通り
rails g controller コントローラー名
例は以下の通り
rails g controller contents
コントローラでアクションを定義する
CRUD(Create, Read, Update, Delete)操作に対応する7つのアクション(index, new, create, show, edit, update, destroy)の中から必要なものを定義します。
ビューを作る
コントローラのアクションに対応するビューファイルを作成します。例えば、新規作成用の画面を表示するnewアクションに対するnew.html.erbや、編集用の画面を表示するeditアクションに対するedit.html.erbなどを作成します。
routes.rbを定義する
get '/contents', to: 'contents#index'のようにルーティングを一つ一つ書く方法もありますが、これでは時間がかかるためCRUD操作に対応する7つのルーティング(index, show, new, edit, create, update, destroy)を一度に定義するために、resourcesメソッドを使うことが一般的です。以下のように書くことで全てのCRUDルーティングを定義できます。
resources :コントローラ名
また、特定のroutesを定義したい時はonlyを使って指定してあげることもできます