Rails6をinstallして新しいアプリを作成[rubyのバージョン】上げる

rails6 rails6の新規アプリ

こんにちは。
4児パパです。

最近Dive Into Codeの代表の野呂さんの活躍ぶりをみて、特にアフリカへの貢献は心から凄いなぁと思っている。
DICで学び、卒業してもなお”繋がり”を持てるのはこれからの人生を変える事もあったりする。

フィリピンと日本の架け橋となるコミュニティサイトを作って、少しでも貢献しつつ人生の方向性を変えようと思っています。

今日からRailsでフィリピンと日本を繋ぐコミュニティサイト作り始めます🙋🏻‍♂️ Rails6で新開発して、Rubyのバージョンも2.6に上げていきます💻 ブログに関しては、少し更新の頻度が下がりますがサイト内と移行した過去記事を修正しつつ、プログラミング関係の投稿を増やしていきます☝️

Railsのバージョンのアップデートは早く、常にキャッチアップする為のアンテナは必要。

Rails6で開発する為の準備

私が3年前Dive Into CodeでRailsを学んでいた時はまだRails4シーリズで、ちょうど5になりかけるタイミングでした。なので後半の課題はまだRails5は情報が少ないので、Rails4で制作するようとのことだったけど、あえてRails5にバージョンをあげて制作していました。
Rails5 belongs_toを設定において、nilで保存できなくなる?belongs_toのrequiredがデフォルトでtrueに。

もろ新しくなったアソシエーションではまってしまいました。苦笑

RailsとRubyのバージョンの依存性

公式ではRails6以降はRuby2.5を推奨しています。
こちらを参照してください。
Railsはが新しくリリースされた場合は、Rubyのバージョンも新しい安定したバージョンでの開発をお勧めします。じゃないとどんどん古いのが淘汰されてキャッチアップしていくのが大変で手間になるので。

Rubyのバージョン確認

まずシステム(PCでのバージョン)でのRubyのバージョンを確認します。

$ruby --version 
ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-darwin16]    

この様に出ます。
そして次にrbevにインストールされているRubyのバージョンを確認します。

$ rbenv versions   
  system
  2.2.3
  2.3.0
  2.3.1
* 2.5.0 (set by /Users/4kids/.rbenv/version)

Rails6は2.5以上を目指す

まずRubyのインストールできるバージョンの確認をしましょう。

$rbenv install -l

現代段階で最新のrubyは”2.7.0-dev”がありましたが、2.6.5を私は選びました。
極力Railsの新しいバージョンには新しいRubyのバージョンを。

Brewの更新も忘れずに

実はバージョンのリストを見ようといくらコマンドしても、最新版が出なくて少しだけハマってしまいました。

$rbenv install -l

このコマンドで新しいバージョンが出なかったら、Brewのアップデートとアップグレードも必要な面があるので、コマンドしてみてください。

$brew update && brew upgrade ruby-build

ただここで更新した時に、マックOSを更新したばかりですと、
”xcode-select –install”しろと怒られるかも知れません。
ちなみに私は怒られたので、

$xcode-select --install

xcodeのコマンドをして解決でした。

Ruby最新版のインストール

では早速Rubyの最新版をインストールしていきましょう。

$rbenv install 2.6.5

数字の場所は自分の好きなバージョンを入れれば、そのバージョンをインストールしてくれます。

ローカル内のバージョン指定

複数あるRubyをローカル環境内しようするバージョンの指定をします。

$ rbenv versions
 system
  2.2.3
  2.3.0
  2.3.1
* 2.5.0(set by /Users/username/Rails6_project/project_name/.ruby-version)
  2.6.5 

この中で2.6.5に選定します。

$ rbenv local 2.6.5
$ rbenv rehash

これでRubyの段階は終えました。次はRailsについてですね。

Rails6のインストール

年々新しくなって追加されるものと、削除されていくものがあります。
今回Rails6.0の注目的な機能は、

注目機能
  • Action Mailbox
  • Action Text

この二つ以外にもまだまだあるのですが、紹介する機会がありましたら、記事にしたいと思います。

インストールされているRailsのバージョンの確認

まず既存のrailsのどのバージョンがインストールされているかの確認。

$ gem list rails 

*** LOCAL GEMS ***

rails (6.0.0, 5.1.4)
rails-dom-testing (2.0.3)
rails-html-sanitizer (1.3.0, 1.0.3)
sprockets-rails (3.2.1)

この様に確認することができます。

$ rails --version
Rails 6.0.0

Rails 6.0.0になる様に目指します。

最新のrailsのバージョンのインストール

最新バージョンのRailsをインストール。

$ gem instal rails

ディレクトリはどこでも大丈夫ですね。
このインストールのコマンドはgemが最新で入ってきますが、特定のバージョンの指定もする事ができます。

$ gem install rails --version="5.1.4"

特手のバージョンを指定してインストール

$ gem install rails --version="~>5.1.0" 

5.1.x系列のバージョンで最新をインストール

$ gem install rails --version="~>5.0"

5系内のバージョンの最新をインストールします。

以上Railsのインストールが完了します。
次は実際にrails6での立ち上げまでを紹介します。

Ruby&Rails学習の書籍紹介

ゼロからわかる Ruby 超入門 (かんたんIT基礎講座)は、イラストでの解説もありわかりやすいです。また構文なども十分に説明されていて学習しやすい内容となっています。

上記三冊でRubyとRailsに関わる本で、十分に学べます。

新規でrailsファイルを作るときは、”常に”この手順で

rails6 rails6の新規アプリ

下準備が整ったのでいよいよ上記のrails6そしてrubyは2.6.5での開発ができるとこまで紹介していきます。
ここの手順が割と大切です。プログラミングを未経験から学んでいた私は常に構築を含め、ローカル環境で悩まされていました。
ファイルをいくつか作り続けると実際にファイルとのconflictで、相当悩みました。解決するにあたり、最初の立ち上げが重要だなと調べているうちに気づきましたので、備忘録も兼ねてこの記事に残しておきます。

新規ファイルを作成する時は常にこの手順で行いましょう。他のバージョン違いの案件も抱えているのならなおさら。

rails6プロジェクトファイルを作成

まず先にrails6用のファイルを作成します。
自分が作成したいディレクトまで進み、

$ mkdir projectname

ここでは適当にprojectnameにしておきます。

一時的なファイルでrailsをローカルセット

rbenv内だけで有効なrubyのbundlerをインストールします。

$rbenv exec gem install bundler

$gem install bundlerでもいいのですが、システムまで干渉してしまうため、割と面倒です。ですので、”rbenv exec”でrbenv内のインストールにします。

$ rbenv rehash 

インストールしたbundlerの定義をします。

ローカルディレクトリでRailsファイルを作るためのrailsをインストール

ちょっとここから混乱してしまいますが、ローカル環境でなおかつ他のrailsファイルとconflictしないために、railsプロジェクトファイルの為のローカルへのrailsを一時的にインストールします。

$ rbenv exec bundle init

ここでGemfileが作成されます。
ここでRailsのバージョン指定をする事ができるのですが、今回は現時点の最新版でいきたいので、何も触らずにいきます。

$ rbenv exec bundle install --path vendor/bundle
ポイント
bundle installだけでコマンドしてしまうとシステムへの干渉へ繋がります。ですので、オプションの”–path vendor/bundle”を使用する事で、Ruby大元の環境下ではなく、ローカルのvendor/bundle内のみで格納してくれます。そしてなおかつrbenv exec をつける事でrbenv内の動作となります。
gemについて
そのプロジェクト内限定でgemを使用するのなら、bundle install –path vendor/bundleで良いのですが、常に最新版のgemとして使用するのであれば、rbenv exec gem install ”gem名”などしてrbenvにシステムインストールしても方法の一つでですね。使い分けと、適度な判断が必要です。

railsプロジェクトを作成

先ほどまで作ったファイルへrailsファイルを作成していきます。

$bundle exec rails new test1 --skip-bundle
ポイント
ここでも重要なポイントがあり、それはrails newでrailsファイルを作成する際、ここでは”–skip-bundle”を追加する事。システムのRuby環境へgemがbundle installされてしまいます。

Gemfileを含めローカルへRailsをインストールする為に作成されたファイル達を削除していきます。ここではrails newで立ち上げた”test1″以外のファイルを消します。

$ rm -f Gemfile
$ rm -f Gemfile.lock
$ rm -rf .bundle
$ rm -rf vendor/bundle

Railsプロジェクトのbundle install

rails newファイルで作成したdirectまで進みます。

$ cd test1

gemのインストールをします。

$ bundle install –-path vendor/bundle
注意
Railsのバージョンを上げても、gemのバージョンが追いついてない時が多々あるがgemのバージョンを下げて臨機応変に対応する事をお勧めします。

サーバーを立ち上げて完了

Rails6からは、yarnとwebpackerのインストールが必要です。
ここではyarnについてですが、無事にインストールされていた為割愛させて頂きます。

webpackerインストール

rails サーバーを立ち上げる際に”webpacker”のインストールをしてくださいと怒られました。なので、指示されたようコマンドします。

 $rails webpacker:install

サーバーの立ち上げ

サーバーを立ち上げて、確認してみましょう。

$ bundle exec rails s
rails6 rails6の新規アプリ

これでrails6での開発が可能になりました。

この時点でgit initでgithubへ

新しいプロジェクトのスタートなので、早めにgitにあげましょう。
対象ファイルとしてgit initを。

$git init
Reinitialized existing Git repository in /Users/username/Rails6_project/projectname/.git/

.gitignoreもセッテイングしておこう

余計なコードがアップされないよう、.gitignoreも書いておく。
Rubymineで開発している為、人によっては必要のないものもありますので、抜粋してくださいね。

# See https://help.github.com/articles/ignoring-files for more about ignoring files.
#
# If you find yourself ignoring temporary files generated by your text editor
# or operating system, you probably want to add a global ignore instead:
#   git config --global core.excludesfile '~/.gitignore_global'

*.rbc
capybara-*.html
.rspec
/log
/tmp
/db/*.sqlite3*
/public/system
/coverage/
/spec/tmp
**.orig
rerun.txt
pickle-email-*.html
.DS_Store

config/initializers/secret_token.rb
config/secrets.yml
/.env


# Ignore bundler config.
/.bundle

## Environment normalization:
/vendor/bundle

# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
.rvmrc

# if using bower-rails ignore default bower_components path bower.json files
/vendor/assets/bower_components
*.bowerrc
bower.json

# Ignore pow environment settings
.powenv

# Ignore all logfiles and tempfiles.
/log/*
/tmp/*
!/log/.keep
!/tmp/.keep

# Ignore uploaded files in development.
/storage/*
!/storage/.keep

/public/assets
.byebug_history

# Ignore master key for decrypting credentials and more.
/config/master.key

/public/packs
/public/packs-test
/node_modules
/yarn-error.log
yarn-debug.log*
.yarn-integrity

## Editor settings:
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm
*.iml
.idea/
*.ipr
*.iws

# vim
*.sw*

プログラミングを学ぶならDive Into Code

理系の大学を出ていなくとも、エンジニアの世界に入っていける恵まれた良い世の中になってきました。
プログラミングを学び、エンジニアの世界へ転職活動するのであれば、Dive Into Codeは間違いないスクールです。学び以上の事を教えてくれます。

卒業しても教材は半永久的に閲覧する事が可能ですし、そして同期はもちろん卒業生などDive Into Codeで学んでいた人の繋がれるコミュニティがとても強いです。

薄っぺらいサービスはしていないのは、実体験をもとに私が強くお伝えする事ができます。

最後に

新しいRailsプロジェクトを自分のローカルで立ち上げる時いつも、環境設定で悩んでいました。実際にコーディングできるまで時間がかかってしまったりして、時間をロスしていましたが、こうやって備忘録として残しておくのも、良いですね。他のエンジニアの方々にも参考にして頂けたら、心より嬉しい限りです。

私はもう30代半ばになってしまいましたが、まだまだチャレンジしている最中です。試したい事がたくさんあります。Railsも触り続けたいですし、ブログで発信もしていたい。

そして家事や育児にも手を抜くかずですね。(ここを手を抜くと、夫婦げんかや子供たちにも嫌な思いをさせ、家庭崩壊へ繋がるので。)

人生伸びしろしかない!!!
4児パパ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です