RubyMine で Rails Tutorial 2章

次は 2章

同じく rails 5.2.0 でやります。

toy_app として新しくプロジェクトを作成します。

Gemfile を編集すると検知されて bundle install をしようとしますが、 –without production で実行します。
手元では development で、heroku では production でという意味合いですね。

2章では scaffold の練習です。New → Run Rails Generator を開きます。

先頭の何文字か入力して、scaffold を選択します。

引数を入力して OK を押すと作成されます。

右クリック → Diagrams → Show Diagram で図を生成することができます。

1つしかモデルがないのでこんな感じになります。

Terminal のタブで db:migrate します。

これで簡単に動かせるのが scaffold のいいところです。
再生ボタンのようなものをクリックして rails server を起動します。

ブラウザから http://localhost:3000/users にアクセスするとこのように読み書きできる画面が出てきます。

Micropost についても同様に作っていきます。

micropost.rb を編集します。RubyMine ならさくさく補完してくれます。

ブラウザから、もしくは rails console からデータをいくつか入れてみます。

RubyMine の右のほうにある Database を開いて、Data Source から Sqlite を選択します。

ドライバがないと言われるので Download をクリックするとインストールされます。
RubyMine から読み込むためのドライバなので、Gemfile で入れたものとは別に考えましょう。

File: の右にある選択ボタンをクリックして、toy_app/db/development.sqlite3 を選択します。

Test Connection を押して接続を確認しておきます。

OK を押して RubyMine の画面に戻り、開いていくと DB の中が覗けるようになっています。

テーブルをダブルクリックすると select 文が実行されて中身が表示されたりもします。

heroku への deploy は省略します。1章と同じです。

RubyMine で Rails Tutorial 1章

Rails Tutorial では Rails は 5.1.4 になっていますが、最新版の 5.2.0 でやってみます。

開発環境は RubyMine を使うことにしました。

hello_app でプロジェクトを作成します。

自動的にあれこれ作成されたり gem install が走っていたりします。

再生ボタンを押すと rails server が起動して、ブラウザから http://localhost:3000 にアクセスすると起動画面がでてきます。

次は hello world ですね。

app/controllers/application_controller.rb を開いて編集します。いろいろ補完が効いて便利です。

config/routes.rb を編集して、上で定義したメソッドが呼ばれるようにします。

ブラウザで http://localhost:3000 を開いていた画面をリロードすると hello, world! と出るようになりました。

このとき、RubyMine の Console でログが出ているのも見ておきましょう。

git は下のほうにある Version Control のタブで操作します。

Unversioned Files の対象を browse のリンクからクリックして、git の管理下に繰り入れます。

commit ボタンをクリックします。

Commit Message を入れて Commit ボタンを押すと git に入ります。

今回は使いませんが、github の設定もしておきます。

メニューから Preferences を選択して、Version Control → GitHub を開きます。
Create API Token をクリックすると github のユーザ名とパスワードを聞かれて、二段階認証を経てトークンが作成されるようになります。

Test をクリックしてアクセスできることを確認しておきましょう。

Heroku にデプロイしてみます。

まず Gemfile を編集して、production では DB のドライバに PostgreSQL を使うようにします。

diff --git a/Gemfile b/Gemfile
index 62610ed..8e4ef81 100644
--- a/Gemfile
+++ b/Gemfile
@@ -5,8 +5,7 @@ ruby '2.5.1'
 
 # Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
 gem 'rails', '~> 5.2.0'
-# Use sqlite3 as the database for Active Record
-gem 'sqlite3'
+
 # Use Puma as the app server
 gem 'puma', '~> 3.11'
 # Use SCSS for stylesheets
@@ -39,6 +38,12 @@ gem 'bootsnap', '>= 1.1.0', require: false
 group :development, :test do
   # Call 'byebug' anywhere in the code to stop execution and get a debugger console
   gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
+  # Use sqlite3 as the database for Active Record
+  gem 'sqlite3'
+end
+
+group :production do
+  gem 'pg'
 end
 
 group :development do

heroku コマンドでログインして、アプリケーションの作成、デプロイをします。

$ heroku login
$ heroku keys:add
$ heroku create
$ git push heroku master

Bitbucket については省略しました。