LoginSignup
20
21

More than 5 years have passed since last update.

Railsプロジェクト新規作成後の各種設定まとめ

Last updated at Posted at 2016-06-16

railsで新しくプロジェクトを作るときに面倒な設定を毎回調べ調べやるのが面倒だなあと思い、だいたいどんなプロジェクトでも共通でやりそうな設定をまとめてみました。

--
更新情報(2016/7/22) 
こちらの記事は元々Rails4.2.6用に書きましたが、githubで公開している下記のプロジェクトをRails5.0に移行しました。

  • Rails5の目玉機能の一つのActionCableはすべてのプロジェクトに必要な機能ではないように思えたので下記PJでは追加していません。
  • Rails5ではdevelopmentのデフォルトサーバーはデPumaになっていますが、こちらの変更も対応していません。PumaにしたければGemfileにgem 'puma'と追加してインストールすれば使えると思います。

--

githubに初期設定完了済みプロジェクトを公開しています。
こちらの記事のgemと設定内容でそのまま使えそうならご自由にお使いください。
https://github.com/hagure-inc/startup-core-auth

DeviseとActiveAdminを含まないバージョンもあります。(こちらはRails4.2のままです)
https://github.com/hagure-inc/startup-core

追加したgem

# Administration Framework
gem 'activeadmin', github: 'activeadmin'

# Authorization
gem 'devise'

# Configuration
gem 'settingslogic'

# Use slim for templates
gem 'slim-rails'

# Decorator
gem 'active_decorator'

# User-friendly URL
gem 'friendly_id'

# I18n
gem 'i18n_generators'

# Paginate
gem 'kaminari'

# SEO
gem 'meta-tags', :require => 'meta_tags'
gem 'sitemap_generator'

# Load jquery from CDN
gem 'jquery-rails-cdn'

# Test tools
group :development, :test do
  gem 'rspec-rails', '~> 3.4'
  gem 'factory_girl_rails'
end

.gitignoreの変更

RubyMineを使っているので、IDEの設定関連のファイルを含めないように.gitignoreを書き換えました。
JetBrain製のIDE用の.gitignoreはこちらにありました。
https://github.com/github/gitignore/blob/master/Global/JetBrains.gitignore

DBの設定:Postgresql

DBはHerokuと同じPostgresqlに変更しました。

1. DBのユーザー名とパスワードを環境変数に設定

developmentのusernameは環境変数で設定しています。

  • ENV['RAILS_DATABASE_USERNAME']に自身のDBのユーザー名を設定する必要があります。
  • passwordは設定していませんので必要な場合は追加します。

環境変数の設定の仕方はこちらをご参考に:
http://qiita.com/tomomomo1217/items/77c9b64266daf6315abe

2. DBを作成

コンソールで以下を実行

$ rake db:migrate   # db/schema.rbを作成
$ rake db:setup     # developmentとtestのデータベースを作成

scaffoldの変更

scaffoldの際に生成されるファイルを以下のように変更しました。

config/application.rb
config.generators do |g|
  g.template_engine :slim       # テンプレートエンジンをslimに変更
  g.assets false                # css,jsを生成しない
  g.helper false                # ヘルパーファイルを生成しない
  g.test_framework :rspec,      # テストフレームワークをrspecに変更
        fixtures: true,
        view_specs: false,
        request_specs: false,
        routing_specs: false,
        helper_specs: false
  g.fixture_replacement :factory_girl, dir: 'spec/factories'        # フィクスチャーをfactory_girlに変更
end

localeの設定

日本語のロケールファイルを作るにはi18n_generatorsのgemを使うのが便利です。
https://github.com/amatsuda/i18n_generators

1.日本語のロケールファイルを作る

コンソールで以下のコマンドを実行

$ rails g i18n_locale ja

これでconfig/locales/ja.ymlができました。

2.config/application.rbを設定

config/application.rbに以下の2行を追加
config/locales以下の*.ymlファイルが読み込まれるようになります。

config/application.rb
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}').to_s]
config.i18n.default_locale = :ja

※i18n_generatorsには存在するすべてのモデルの属性の日本語(多言語)ファイルを作る機能もありますが、ここではまだ何もモデルが存在しないので後で適宜やります

Settingslogicの設定

SettingslogicはRailsの定数管理gemです。
https://github.com/binarylogic/settingslogic

以下の2ファイルをSettingslogicのgitの説明のとおりに作成しました。

  • model/settings.rb
  • config/application.yml

jquery-cdnの設定

jqueryをgoogle等のCDNから読み込むことにより、ユーザーキャッシュが使える可能性が高まり読み込み速度の向上に寄与します。
jquery-cdn-railsのgemを使うことにより、簡単に最新バージョンのjqueryをCDNから読むことができます。
https://github.com/kenn/jquery-rails-cdn

以下のコードをそれぞれ指定ファイルに追加します。
※ここではjquery2で対応しますが、1.x系も利用できます

config/initializers/assets.rb
# Rails5の場合この設定は不要
# 代わりに必要な内容は次のasset pipelineの設定のところに書きました
Rails.application.config.assets.precompile += ['jquery2.js']
config/initializers/jquery_cdn.rb
# このファイルを新規作成
Jquery::Rails::Cdn.major_version = 2
layouts/application.html.slim
= jquery_include_tag :google, force: true # javascript_include_tagより前に追加

application.jsから以下の行を削除します。

assets/javascripts/application.js
//= require jquery

asset pipelineの設定

Rails5への移行

Rails5ではasset pipelineの設定が大きく変わりましたのでRails4で設定していたinitializers/assets.rb、development.rb、production.rbの内容はconfig.assets.css_compressor以外は不要になりました。

assetの設定はapp/assets/config/manifest.jsに配置されます。

app/assets/config/manifest.js
//= link_tree ../images
//= link_directory ../javascripts .js
//= link_directory ../stylesheets .css
//= link jquery2.js

最後のjquery2.jsはjquery-cdnでjquery2を利用するための設定です。それ以外はデフォルトの記述のままです。

参考:http://eileencodes.com/posts/the-sprockets-4-manifest/

Rails4の場合

ミスって泣きがちなasset pipelineの設定…。とりあえず初期段階としては最低限の変更のみ行いました。

各ファイルそれぞれ以下のコードを追加。

config/initializers/assets.rb
# Enable the asset pipeline
Rails.application.config.assets.enabled = true
config/environments/development.rb
# Enable the asset pipeline
config.assets.enabled = true

# Do not compress assets
config.assets.compress = false

# Expands the lines which load the assets
config.assets.debug = true
config/environments/production.rb
# Enable the asset pipeline
config.assets.enabled = true

# Compress JavaScripts and CSS.
config.assets.css_compressor = :yui
config.assets.compress = true

config.assetの各項目についての詳しい説明はこちらの記事を参照してください。
Rails4 asset pipeline関連設定まとめ(Heroku対応込)

SEO対策用の設定

説明が長くなったので別記事に分けました。
SEO対策!meta-tagsのマイベスト設定
sitemap-generatorはgemだけ入れて設定はしてません。

以上です。

20
21
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
20
21