4年ぶりにRuby on Railsで開発しようと思ったので、環境構築から始めました。
2020年目標らしいRubyの3倍にと互換性を保とうというのに期待して。
あと、いずれはフロントはvue.jsでSPAに移行するのが良さそうだが、最初はレールに乗った方が効率的だろうね。
色々、変わってるのでメモしておきます。
Homebrewインストール
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" ($ brew update) $ brew doctor $ sudo mkdir /usr/local/sbin $ sudo chown `whoami`:admin /usr/local/sbin
$ brew -v Homebrew 2.2.0 Homebrew/homebrew-core (git revision df7bd; last commit 2019-12-04)
Node.jsインストール
$ brew install nvm $ mkdir ~/.nvm $ vi ~/.bash_profile
### START ### export NVM_DIR="$HOME/.nvm" . "/usr/local/opt/nvm/nvm.sh" ### END ###
$ source ~/.bash_profile
$ nvm --version 0.34.0
$ nvm ls-remote | grep 'Latest LTS' v4.9.1 (Latest LTS: Argon) v6.17.1 (Latest LTS: Boron) v8.16.2 (Latest LTS: Carbon) v10.17.0 (Latest LTS: Dubnium) v12.13.1 (Latest LTS: Erbium) $ nvm install 12.13.1 ($ nvm use 12.13.1)
$ nvm ls -> v12.13.1 $ node -v v12.13.1
Rubyインストール
$ brew install gpg2 $ gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB $ 'curl' -sSL https://get.rvm.io | bash -s stable $ source ~/.rvm/scripts/rvm (or $ rvm get latest)
$ rvm -v > rvm 1.29.9 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]
$ rvm list known [ruby-]1.8.6[-p420] [ruby-]1.8.7[-head] # security released on head [ruby-]1.9.1[-p431] [ruby-]1.9.2[-p330] [ruby-]1.9.3[-p551] [ruby-]2.0.0[-p648] [ruby-]2.1[.10] [ruby-]2.2[.10] [ruby-]2.3[.8] [ruby-]2.4[.6] [ruby-]2.5[.5] [ruby-]2.6[.3] [ruby-]2.7[.0-preview1] $ rvm install 2.6 ($ rvm use 2.6 --default)
$ rvm list =* ruby-2.6.3 [ x86_64 ] $ ruby -v ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin17]
Railsインストール
$ gem install rails ($ gem update rails)
$ rails -v Rails 6.0.1
yarnインストール
$ brew install yarn ($ brew upgrade yarn)
$ yarn -v 1.19.2
Railsプロジェクト作成
$ mkdir -p ~/workspace $ cd ~/workspace $ rails new rails-app-origin
$ cd rails-app-origin$ rails webpacker:install$ vi config/webpacker.yml
# check_yarn_integrity: true
$ rails s -> http://localhost:3000/
おまけ
RSpec追加
$ vi Gemfile
group :development, :test do 〜省略〜 # Use RSpec gem 'rspec-rails' gem 'spring-commands-rspec' end
$ bundle install $ rails g rspec:install $ spring binstub rspec
$ rspec
YARD追加
$ vi Gemfile
group :development do 〜省略〜 # Use YARD gem 'guard-yard' gem 'redcarpet' gem 'yard' end
$ bundle install $ touch .yardopts $ vi .gitignore
desktop.ini Thumbs.db .DS_Store .idea/**/workspace.xml .idea/**/tasks.xml /nbproject/private/ /doc/*
$ yard $ open doc/index.html
$ yard server --reload -> http://localhost:8808/
RuboCop追加
$ vi Gemfile
group :development, :test do 〜省略〜 # Use RuboCop gem 'rubocop' gem 'rubocop-rails' end
$ bundle install $ rubocop --auto-gen-config
$ rubocop -P ($ rubocop -a)
Brakeman追加
$ vi Gemfile
group :development, :test do 〜省略〜 # Use Brakeman gem 'brakeman' end
$ bundle install $ touch config/brakeman.yml
$ brakeman
CarrierWave追加
$ vi Gemfile
# Use CarrierWave/MiniMagick gem 'carrierwave' gem 'mini_magick'
$ bundle install
$ brew install imagemagick $ magick -version Version: ImageMagick 7.0.8-12 Q16 x86_64 2018-09-23 https://imagemagick.org
$ rails g uploader image create app/uploaders/image_uploader.rb $ vi app/uploaders/image_uploader.rb
# include CarrierWave::MiniMagick ↓ include CarrierWave::MiniMagick
Tips: 「def filename」でファイル名に日時を入れると、1処理で複数回呼び出されるので、ファイルが参照できなくなる時があります。下記が代替案。
How to: Create random and unique filenames for all versioned files
“Macでrails newしてrails sで動かすまで” に対して1件のコメントがあります。