Gemfileとdatabase.yml

rails に関して学習を進めてゆく中で標準ではない gem を使うことが多くなった。

いちいち Gemfile を編集するのも面倒になったので、これまで触ってきた gem をまとめてインストールできるようにしたいと思った。

以下に Gemfile と、これまたいちいち編集するのが面倒な、mysql 用にした database.yml を記載しておく。

目次

Gemfile

Gemfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 5.2.4', '>= 5.2.4.1'
# Use sqlite3 as the database for Active Record
#gem 'sqlite3'
# Use Puma as the app server
gem 'puma', '~> 3.11'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# See https://github.com/rails/execjs#readme for more supported runtimes
gem 'duktape'
# Use CoffeeScript for .coffee assets and views
gem 'coffee-rails', '~> 4.2'
# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
gem 'turbolinks', '~> 5'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.5'
# Use Redis adapter to run Action Cable in production
# gem 'redis', '~> 4.0'
# Use ActiveModel has_secure_password
gem 'bcrypt', '~> 3.1.7'

# Use ActiveStorage variant
# gem 'mini_magick', '~> 4.8'

# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development

# Reduces boot times through caching; required in config/boot.rb
gem 'bootsnap', '>= 1.1.0', require: false

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]
end

group :development do
gem 'listen'
# Access an interactive console on exception pages or by calling 'console' anywhere in the code.
gem 'web-console', '>= 3.3.0'
end

group :test do
gem 'listen'
# Adds support for Capybara system testing and selenium driver
gem 'capybara', '>= 2.15'
gem 'selenium-webdriver'
# Easy installation and use of chromedriver to run system tests with Chrome
gem 'chromedriver-helper'
end

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

# 以下を定義不要なものはコメントアウトする
# mysqlかmariadbを使う
gem 'mysql2'

# 日本語化
gem 'enum_help'
gem 'rails-i18n'

# 遅延処理系
gem 'delayed_job_active_record'
gem 'daemons'

# redisキャッシュ
gem 'redis-activesupport'

# 認証
gem 'devise'
gem 'devise-i18n'

# 管理画面
gem 'activeadmin'
gem 'active_admin_flat_skin'
gem 'font-awesome-sass'

# テンプレート
gem "slim-rails"
gem 'slim'
gem 'html2slim'

# シリアライザ
gem 'active_model_serializers', '~> 0.10.0'

# 論理削除
gem 'paranoia', '~> 2.2'

# 定期実行cronのラッパーWindowsでは動かせない
gem 'whenever'

# slack通知
gem 'slack-notifier'

# yamlで設定を管理する
gem 'config'

# QRコード生成
gem 'rqrcode'

# ファイルアップロード
gem 'carrierwave', '~> 2.0'
# ファイルアップロード(AWS)
gem 'fog-aws'
gem 'aws-sdk-cloudfront'

group :development do
# 送信メールのビューア
gem 'letter_opener_web', '~> 1.0'

# モデルの出力結果を表形式で表示するGem
gem 'hirb'
gem 'hirb-unicode'

# コンソールの表示が便利になる
gem 'pry-rails'
gem 'pry-byebug'
end

# APIサーバを作り、CORSになるとき
gem 'rack-cors'

# 便利なseederのツール
gem 'seed-fu', '~> 2.3'

# ページネーション
gem 'pagy'

# 高度な検索
gem 'ransack'

一度にすべてを使うことは当面考えにくいが、これまで使ってきた gem をグループ分けして全部記載。
不要なものは、コメントアウトする。

1
2
3
4
5
6
bundle install --path=vendor/bundle
bundle exec rails new . -B --skip-turbolinks --skip-coffee
<n
# -B bundle installしない
# --skip-turbolinks turbolinkを使わない
# --skip-coffee coffeescriptを使わない

config/application.rb

config/application.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

require_relative 'boot'

require 'rails/all'

Bundler.require(*Rails.groups)

module Test149BaseTemplate
class Application < Rails::Application
# Initialize configuration defaults for originally generated Rails version.
config.load_defaults 5.2

# デフォルトテンプレートをslimに変更
config.generators.template_engine = :slim

# scaffoldで使用されるコントローラーを標準のものにする
config.app_generators.scaffold_controller = :scaffold_controller
end
end

config/database.yml

database.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
default: &default
adapter: mysql2
encoding: utf8
host: localhost
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
timeout: 5000

devuser: &devuser
username: [適宜書き換え]
password: [適宜書き換え]

development:
<<: *default
database: [適宜書き換え]/DB_developmnt
<<: *devuser

test:
<<: *default
database: [適宜書き換え]/DB_test
<<: *devuser

production:
<<: *default
database: [適宜書き換え]/DB_production
username: [適宜書き換え]
password: [適宜書き換え]

username と password は development と test はローカルの DB を使っていれば同じであろうものの、production だけは違うものを使うだろう見込みで分割した。

1
2
3
4
5
6
7
8
9
bundle exec rails db:create
bundle exec erb2slim app/views app/views -d

#app\views\layouts\application.html.erb を削除
# -d をつけても消えないことがある
#del app\views\layouts\application.html.erb
#rm app/views/layouts/application.html.erb

bundle exec rails s

この後 scaffold で画面が構築できることまでは確認できた。
以後も使いまわしそうなものは、この記事に追記することで更新したい。

ではでは。