はじめに
エンジニアになる為に勉強中。Railsを使ったWEBアプリケーション開発をベースに学習を進めています。
・・・ので、今後よく出くわすであろうRailsでのプロジェクト作成に慣れていきたい!と感じました。
正直、数こなせば自然と体が覚えるだろうと思ってはいるのですが・・・早い段階でまとめておけばメモ代わりになるかなーなんて思って記事投稿してみました(笑
この記事について
- 環境構築はすでに終わっている前提で書いていこうと思っています。
- プログラミング初学者の記事です。記事の中に認識が誤っている部分があるかもしれません(汗
- 上記理由から、同じく経験が浅い方はあまり参考にしないことをお勧めします!
プロジェクトの雛形〜rails sでローカルサーバー立ち上げまで
プロジェクトの雛形作成をしよう
まずは、プロジェクト作成の場所を決めます。
デスクトップに「projects」というディレクトリを作るもよし、ホームディレクトリ(家のアイコン)の配下に「projects」というディレクトリも作るもよし。
作ったら、ターミナルを起動して、"cd"コマンドを駆使して「projects」フォルダまで移動。
# コマンド
ユーザ名 $rails new アプリケーション名 -オプション名
# Railsのバージョンを指定したいならこっち
ユーザ名$ rails _○.○.○_ new アプリケーション名 -オプション名
・アプリケーション名:これから作りたいプロジェクトの名前
・オプション名: mysqlの環境設定をするなら、-d mysql
オプション名については、他にも-skip-turbolinks
(ajaxで取得したhtmlでbodyを入れ変えてページ遷移できようになるとか・・・)とか色々あるっぽいけど、今の知識じゃ「貴様にはまだ早い。」状態なので深追いはやめます(苦笑
ところで・・・railsって、今現在どのバージョンが使用率高いんですかね?
調べてみたもののRailsが下火になっているっていう悲しい情報ばかり出てくる・・・。
Bundle installをしよう
・・・の、前に準備
アプリ作成時に必要となるライブラリなどをインストールする必要があるので、bundle installを実行したい。
・・・けど、その前に手動で追加が必要なgemも合わせてインストールすると楽かも。
①rails newで作ったプロジェクトを適当なエディターで開く
②app/Gemfileに必要であろうgemを記載!
# app/Gemfile/の末尾に以下の追記
gem 'pry-rails'
gem 'devise'
だいたいマストなのがこの子たち。
pry-rails
デバッグをする時にあると便利
(と言っても僕はbinding.pryくらいしか使った事ないけど・・・)
devise
ユーザー登録するのなら必須。色々いい感じにやってくれるありがたい存在!
(本当は仕組みも気になるから自力で実装してみたい)
念願のbundle install
ターミナルに戻って、作成したプロジェクトのフォルダまでcdしまくる。
pwdコマンドを入力して、今いるディレクトリが間違っていないか確認!(これ大事)
ここでBundle installのコマンド入力
# コマンド
ユーザ名$ bundle install
Bundle complete! の文字が出てたら成功。
エラーが出たら、表示されたエラーメッセージをもとに大人しくググろう。
deviseはもう一手間必要!(追記)
deviseについては、bundle install
に加えてもうdevise専用のコマンドも実行する必要あり。
# コマンド
ユーザ名$ rails g devise:install
deviseのgemを使ってログイン機能周りを実装する場合は、devise専用のコマンドでモデルとビューを作る必要があるので、注意!
# コマンド
▼モデル作成
ユーザ名$ rails g devise user
※↑やったら $ rails db:migrate もわすれずに!
▼ビュー作成
ユーザ名$ rails g devise:views
DataBaseを作ろう
アプリに紐づくDBを作成する。
これがないとこの先に出てくるrails s
がうまく機能しない!(と思う)
まずは、pwdで作ったプロジェクトのディレクトリ内にいることを確認。
そんでもって以下コマンドを実行
# コマンド
$ rails db:create
Created database 'our_blog_development'
Created database 'our_blog_test'
これが表示されていれば作成完了!
ローカルサーバーを立ち上げよう
これもまたpwdして、作ったプロジェクトのディレクトリ内にいることを確認してから実行。
※違うプロジェクトの中で実行すると別のプロジェクト用のサーバーが立ち上がってしまうから間違えないように。
# コマンド
ユーザ名& rails s
# 成功したら以下の文章が表示される(他にもだらだらと出力されている)
Use Ctrl-C to stop
Started GET "/"for・・・ごにょごにょ
上にも書いてある通り、rails sで起動したサーバーを止める時は、Ctrl + C
でOK。
bundle updateとかする時には一度サーバーを止めた方がいいかも。
あと、サーバーはしょっちゅう立ち上げる→停止する
をやるので、サーバー管理用でターミナルをもう一つ用意しておくと楽!
localhost:3000にアクセスする
rails s
してサーバー起動中に、http://localhost:3000 へアクセス!
下の画面が出てれば、最低限の準備が完了!

MVCの準備
ルーティングにルートパスを設定しよう
http://localhost:3000
↑にアクセスした時にindex.htmlを表示できるようにルーティングパスをまず記入する。
Rails.application.routes.draw do
root to: 'コントローラー名#アクション名'
end
コントローラ名
にはこれから作成したいコントローラ名を指定
アクション名
には指定したコントローラー内に書かれているアクションを指定
今回はルートパスだし、7つのアクションのうちのindex
にするのが主流かも。
これで、localhost:3000へアクセスした時
「〇〇っていうコントローラーの××のアクションに記載された処理を実行しまっせ」
となる。
じゃあ、次は、コントローラーを作成!
コントローラーの作成をしよう
一旦、ターミナルに戻る。
お決まりのpwdコマンドで、今いる場所を確認してから、コントローラー作成のコマンドを実行!
# コマンド
ユーザ名$ rails g controller 作成したいコントローラー名
コントローラ名は複数形にしておくといいっぽい!
作成したコントローラーにindexアクションを記述しよう
class コントローラ名Controller < ApplicationController
def index
end
end
今はindexが表示できればそれでいいので、indexアクションには特になにも記述しない。
※作ったコントローラーは ApplicationControllerっていうクラスを継承しているみたい。
はい。次はモデルの作成!
モデルを作成しよう
モデルは、DBとのやりとりを色々受け持ってくれる橋渡しキャラ。
一つのモデルに対して、一つのDBしか紐づかないぞ!
# コマンド
ユーザ名$ rails g model モデル名
(これもpwdでディレクトリ間違ってないかしっかり確認してから実行!)
モデル名は、さっき作ったコントローラ名の単数形にしたものにしておこう!
コントローラとモデルの紐付きがわかりやすくなるから。
例えば、messages
というコントローラーを作ったら、それに対応するモデル名はmessage
にするとよし!
マイグレーションファイルを確認しよう
モデルを作ると、マイグレーションファイルも同時にできる!
これは、DBを作る時の設計図的なものなので、必要なカラムとか、キーの制約とかを用途に合わせて追記してあげよう!
class CreateMessages < ActiveRecord::Migration[5.2]
def change
create_table :posts do |t|
#--ここに追加したいカラムを記載--
t.string :coment
#--↑こんな感じに、データ型とカラム名を書いてあげる--
t.timestamps
end
end
end
書き終わったらマイグレートしよう!
マイグレートして、テーブルを作成しよう
マイグレーションファイルの修正が終わったら、またターミナルに戻って、コマンド入力!
# コマンド
ユーザ名 $ rails db:migrate
これをして初めてテーブルが出来上がる!
※今後カラムを追加したり削除する時はまた新たにマイグレーションファイルを作る必要がある!
今あるファイルを修正してもエラーの原因になるだけなので、間違って触らないように!
ビューを作成して最低限の準備を完了させる!
コントローラに紐づいたビューを作成しよう!
viewファイルは勝手に作ってくれません!・・・ので、自力で準備が必要です!
と、いうことで、一旦仮置きで空のファイルを格納する必要があります!
適当なテキストエディタ(AtomでもVSCでも)で、作成したプロジェクトを開いてあげましょう!
現段階で↓のディレクトリがこんな感じ担っていると思います!
/プロジェクト名/app/views/
└ layouts/
└ 作成したアクションコントローラーのフォルダ/
この作成したアクションコントローラーのフォルダ
内に「index.html.erb」を作成しよう!
/プロジェクト名/app/views/
└ layouts/
└ 作成したコントローラーのフォルダ/
└ index.html.erb ←作成する
せっかくなので、index.html.erb
に以下の一文でも入力しておきましょう!
Hello Rails!
最後に動作確認をしよう
↓にアクセス!
http://localhost:3000

あとは必要に応じてHTML/CSS(Haml,Sassとかでも)を記述して頑張ってWEBアプリケーションを作っていこう!(丸投げ)
ここからが一番しんどい!でも頑張っていきましょう!
最後に
あくまで自分の作業用メモと思って書いてます。
が・・・途中から誰かに伝えるような記述に変わってますね。
Railsにまだ慣れていない人間が書いているので、鵜呑みにしないようにしてください!
加えて、経験豊富な方で「これ、違うよ」「こっちの方が便利だよ」などがあればコメント頂けますと幸いです!