Rails Diary

プログラミングの学習記録です。

PFメモ日記(2) rails new

githubリポジトリを作り、README作成後、特に何も考えずにrails newしてgit branchが訳分からないことになってしまったのでお作法を元にやり直すことに。。

  • Rubyは最新版を使用
  • bundle initから始める(Gemfileが作成される)
  • Railsも原則最新の安定版使用とのことだが、操作に不安があるため6系を使用
  • Minitest、JSライブラリ使用の有無、デプロイ環境のことを考え、オプションを付与してrails newする

※ hotwireとやらを気にすると進まなくなりそうだったので深入りしないことにした
クライアント側のJavaScriptを最小限にするHotwire - ログミーTech

Hotwireとは何なのか?

Rubyバージョン設定

Ruby最新バージョン確認

https://www.ruby-lang.org/ja/downloads/
↑2022年6月現在の時点では3.1.2が最新の安定版

② インストール可能バージョン一覧を確認

$ rbenv install --list

※ 一覧に最新版が表示されなかった場合、下記コマンドでrbenvとruby-buildを更新する
$ brew upgrade rbenv ruby-build

③ 最新版をインストール

$ rbenv install 3.1.2

④ インストールされているか確認

$ rbenv versions

⑤ 最新版がインストールされていたので適用

$ rbenv local 3.1.2

ruby -vでバージョンが適用されているか確認

rbenvを利用してRubyのバージョンを最新安定版にする - Qiita

「bundle init」してGemfileを作成する

$ bundle init

treeコマンドで生成されているか確認

生成されたGemfileのRailsに関する記載を確認する

# gemfile

# 下記の記載があるので任意のバージョンを指定する
# 特に記載しない場合は自動的に最新の安定版がインストールされる
gem "rails", "6.1.6"

7系の仕様に自信がないので6系にする

Gemfileを編集したらbundle install

rails newにオプションを設定する

【完全網羅】rails newの基礎からオプションまで(db, rspec) | 侍エンジニアブログ
↑オプション一覧の記載あり

  • RSpecを使う前提でminitestが生成されないようにする
  • Herokuでデプロイする前提でPostgreSQLを採用する
    ※ Herokuでデプロイする場合はMySQLよりも作業に楽になるらしい
  • JSライブラリを使用する前提でhotwireまたはturbolinksのインストールをスキップする
$ bundle exec rails new . -d postgresql --skip-test --skip-turbolinks

競合するファイルを上書きするかどうかで処理が止まるので、最初から-sオプションで既にするファイルをスキップすればよかった。

エラーメモ

You don't have net-smtp installed in your application. Please add it to your Gemfile and run bundle install
rails aborted!
LoadError: cannot load such file -- net/smtp

net/smtpとやらのエラーが出た

https://github.com/ruby/net-smtp

メール送信関連で必要なファイルらしい🤔
とりあえず今は必要ないから良いのかな??何かあれば、gemをイントールすることに。。

おまけ:アプリ共通で入れることが多いGem

Lint, コード解析
  • rubocop
  • rubocop-rails
  • bullet
テスティングフレームワーク
デバッグ
  • better_errors
  • binding_of_caller

※ ruby3系から標準でdebug.gemが同梱されるため、あえてpry-railsなどを入れる必要がないとのこと

コード補完
  • solargraph
その他
  • annotate