LoginSignup
4
5

More than 5 years have passed since last update.

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

Posted at

はじめに

毎回 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'

ソースコード

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

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5