Posted at

新規サービス用のRailsの雛形を作って見た


はじめに

毎回 rails new して初期設定するのが面倒なので、すぐ開発始められるようにプリセットを作ってみます。


採用技術


  • Rails

  • Ruby

  • Yarn

  • PostgreSQL


いざ実践


ruby最新バージョンを設定する

安定版の最新が2.5.3なのでそれをインストールしていきます。


Homebrewをアップデート

$ brew update

Updated 1 tap (homebrew/core).
==> Updated Formulae


ruby-buildをアップデート

$ brew upgrade ruby-build

Updating Homebrew...
==> Upgrading 1 outdated package:
ruby-build 20180224 -> 20181019
==> Upgrading ruby-build
==> Downloading https://github.com/rbenv/ruby-build/archive/v20181019.tar.gz
==> Downloading from https://codeload.github.com/rbenv/ruby-build/tar.gz/v20181019
######################################################################## 100.0%
==> ./install.sh
🍺 /usr/local/Cellar/ruby-build/20181019: 417 files, 210.8KB, built in 13 seconds


2.5.3をインストール

$ rbenv install 2.5.3

ruby-build: use openssl from homebrew
Downloading ruby-2.5.3.tar.bz2...


使用するバージョンを2.5.3に指定

$ rbenv global 2.5.3

$ ruby -v
ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-darwin17]


最新のrailsをインストール

最新が5.2.1なのでそれをインストールしていきます。


rails をインストール

$ gem install rails

$ rails -v
Rails 5.2.1


bundler をインストール

$ gem install bundler

Successfully installed bundler-1.17.1
Parsing documentation for bundler-1.17.1
Done installing documentation for bundler after 2 seconds
1 gem installed


rails の雛形を作る


rails new

DBはpostgresql、テストユニットはスキップします。

$ rails new rails_preset -d postgresql -T


日本語化

config/application.rb

config.i18n.default_locale = :ja

日本語の言語ファイルを作成します

$ curl -s https://raw.githubusercontent.com/svenfuchs/rails-i18n/master/rails/locale/ja.yml -o config/locales/ja.yml


タイムゾーンの設定

config/application.rb

config.time_zone = 'Tokyo'


rails generate時の生成ファイルの設定

css js helper ファイルを生成しないようにします。

config.generators do |g|

g.assets false
g.javascripts false
g.helper false
g.test_framework false
end


Rspecインストール

関連gemを追加

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]
gem 'rspec-rails', '~> 3.8'
gem 'factory_bot_rails'
end

group :test do
gem 'capybara'
gem 'database_cleaner'
end

rspecの設定コマンド

$ rails generate rspec:install


database_cleanerの設定

以下の行のコメントアウトを外す

Dir[Rails.root.join('spec', 'support', '**', '*.rb')].each { |f| require f }

spec/support/database_cleaner.rb

RSpec.configure do |config|

config.before(:suite) do
DatabaseCleaner.clean_with(:truncation)
end

config.before(:each) do
DatabaseCleaner.strategy = :transaction
end

config.before(:each, js: true) do
DatabaseCleaner.strategy = :truncation
end

config.before(:each) do
DatabaseCleaner.start
end

config.append_after(:each) do
DatabaseCleaner.clean
end
end


factory botの設定

spec/support/factory_bot.rb

RSpec.configure do |config|

config.include FactoryBot::Syntax::Methods
end


slimをインストール

Gemfile

gem 'slim-rails'

config/application.rb

config.generators.template_engine = :slim

既存のerbファイルをslimに変換

$ gem install html2slim

$ erb2slim app/views/ app/views/ -d


開発ツールをインストール

gem 'annotate'

gem 'better_errors'
gem 'binding_of_caller'
gem 'bullet'
gem 'hirb'
gem 'hirb-unicode'
gem 'letter_opener_web'
gem 'pry-rails'
gem 'pry-byebug'


ソースコード

ソースはこちらにあげてます

https://github.com/stivan622/rails_preset