はじめに
これは忘れっぽい自分用にメモを作ってみようと思い書いてみました。
今回はruby on railsのプロジェクト立ち上げの手順を書こうと思います。
開発環境はMacでDBはMySQLを使用します。
rbenv インストール
rbenv はhomebrewでインストールします。
$ brew install rbenv ruby-build
rbenvがinstallされたか確認
$ rbenv -v
rbenv 1.1.0
バージョンが表示されることを確認
ruby インストール
次にrubyのインストールを行います。
まず、インストール可能バージョンを確認します。
$ rbenv install --list
...
2.4.0-rc1
2.4.0
2.4.1
2.5.0-dev
jruby-1.5.6
...
インストールしたいバージョンが存在するか確認しインストールを行います。
今回は2.4.1をインストールして確認
$ rbenv install 2.4.1
$ ruby -v
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin16]
インストールしたバージョンをrbenvのデフォルトバージョンに設定
$ rbenv global 2.4.1
$ rbenv versions
system (set by /Users/user_name/.rbenv/version)
* 2.4.1
bundlerだけグローバルにインストール
$ gem install bundler
rails プロジェクト準備
既存プロジェクトはすでにGemfileが存在するのでここを飛ばしてください。
$ bundler init
Gemfileが作成されます。
今回はrailsプロジェクト立ち上げまで手順を記載しようと思いますのでGemfileを修正してgem "rails"
のコメントアウトを削除し、今回はmysqlを使用しますのでgem "mysql2"
を追加します。
ここは既存も共通でgemインストールになります。
$ bundle install --path vendor/bundle
この時にpathを設定すると現在のカレントディレクトリからvendor/bundle
ディレクトリを作成して、そこにgemをインストールしてくれるのでプロジェクト毎にgemを管理できて便利です。
既存のプロジェクトはここからDB作成の項目までスキップしてください。
rails プロジェクト作成
railsプロジェクトを作成するには
$ bundle exec rails new . -B -d mysql
上記で新しいrailsプロジェクトを作成できます
ちなみにオプションの-Bはbundle installをスキップします。
($ bundle exec rails new -h
でオプション詳細が見れます。)
続いて画面を作成します。
railsには簡単に画面を作成させるコマンドが存在します。
とりあえずUsersテーブルのnameカラムを作成します。
$ bundle exec rails generate scaffold User name:string
これで、画面などのテンプレートが作成されました。
エラーになったら
エラー内容を確認し`Add gem 'listen'`のような文言があったらGemfileにgem 'listen' を記載してbundle installを行ってください。DB作成
今回はmysqlを使用します。
デフォルトではDB接続のpasswordが空なので設定してあるのであれば先に入力します。
ちなみにrootでアクセスします。
default: &default
adapter: mysql2
encoding: utf8
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: root
password: # ここにパスワード入力
socket: /tmp/mysql.sock
モデルを作成したのでこれでDBを作成できます。
$ bundle exec rails db:create
上記でDBを作成できます。
ここで作成されるのはdevelop環境とtest環境のDBになります。
ここからテーブルを作成していきます。
$ bundle exec rails db:migrate
これでmodelで作成した項目がDBのcolumnとなります。
実際にmysqlコマンドで確認してみるのもいいかもしれないですね。
検証
$ bundle exec rails s
エラーなく実行されたら
http://localhost:3000
にアクセスして画面が正常に出力されるか確認します。
新規でプロジェクト作成した場合下記を参照してみてください。
http://localhost:3000/users
先ほど作成した画面が見れると思います。
エラーになったら
Sprockets::FileNotFound in Users#indexというエラーが発生した場合 app/assets/javascripts/application.js ファイルの `//= require turbolinks` を削除して再度試してみてください。以上で完了です!