【Rails】もう迷いたくない。モデル、テーブル、コントローラ、ビューの新規作成。


はじめに

この記事はRailsアプリを立ち上げた後の作業をまとめたものです。
何らかの機能を作る際には、モデルを作ってコントローラ作ってルーティング書いて...といった作業が頻発します。
毎回構文を忘れてしまうので、一連の流れをまとめました。

コントローラの作成

まずはコントローラの作成です。
今回は画像を保存する機能を作るのでimagesとします。

rails g controller images

モデルの作成

下記のコマンドでimageモデルを作りましょう!

rails g model image

これでimageモデルが作成されたと思います。
必要であれば、モデルにバリデーションやアソシエーションを記述しましょう。

テーブル作成

モデルを作成した際にマイグレーションファイルも作成されたと思います。
このファイルを編集して主キーやnull制約などの設定を行います。
私の場合は、以下のようにして”filename”を主キーにし、null制約をかけています。
主キーにしたのでそんな制約要らないかもしれませんが...

class CreateImages < ActiveRecord::Migration[5.2]
  def change
    create_table :images, id: false, primary_key: :filename do |t|
      t.string :filename, null: false
      t.timestamps
    end
  end
end

それではマイグレートを実行し、正常終了すればテーブルが作成されます!

rails db:migrate

ビューの作成

画像の一覧を表示するページということで、index.html.hamlを作りましょう。
これまでの作業でimagesディレクトリが作成されているので、そこに作成します。
ビューの内容については、今回の記事で詰めるところではないので適当に"HelloWorld"を出しておきます。

%h1
  HelloWorld

ルーティング

ここまで来ればほぼ出来たようなものです。
routes.rbにimagesのルーティングを記載します。
今回はresourcesメソッドを使用してindexアクションのみを設定しました。

Rails.application.routes.draw do
  resources :images, only: [:index]
end

結果

出来ました!これで仕事が捗る...!