Rails 4.2.0.beta1 が出てるよね。
betaが出ると試したくなるのでアップデートしても問題ないものをアップデートして遊ぶ。
先に結論
詳細とかあとで述べる。
Gemfile に追加とか変更とか。
gem 'rails', '4.2.0.beta1'
gem 'sass-rails', '~> 5.0.0.beta1'
gem 'web-console', '~> 2.0.0.beta2'
group :development, :test do
gem 'byebug'
gem 'web-console', '~> 2.0.0.beta2'
end
gem 'rails-html-sanitizer', '~> 1.0'
config/application.rb
に追加
config.active_record.raise_in_transactional_callbacks = true
config/environments/development.rb
に追加。
config.assets.digest = true
rails new したときの違い
rails new してときの生成されるファイルの違い下記の方法で確認した。
$ rails _4.2.0.beta1_ new --no-rc hoge
$ mv hoge 4.2.0.beta1
$ rails _4.1.5_ new --no-rc hoge
$ mv hoge 4.1.5
$ diff -ur 4.1.5 4.2.0.beta1/
まず gem 関連
web-console と byebug と rails-html-sanitizer が追加されてる。 その他は、バージョン調整されてるだけ。
debugger はたぶん ruby 2.1 だと動いてないし、web-console を使うようになったので、byebug も追加された感じがする。よくしらん。
rails-html-sanitaizer は sanitize
ヘルパーが追加できるらしい。HTMLタグがとりのぞけて独自のルールはScrubberを作ることで調整ができる模様。
以下、それ意外の抜粋。
onfig/application.rb
+ # For not swallow errors in after_commit/after_rollback callbacks.
+ config.active_record.raise_in_transactional_callbacks = true
ちゃんと確認してない。
Currently, Active Record will rescue any errors raised within after_rollback/after_create callbacks and print them to the logs. Next versions of rails will not rescue those errors anymore, and just bubble them up, as the other callbacks.
This adds a opt-in flag to enable that behaviour, of not rescuing the errors. Example:
とあってトランザクジョン後のコールバックでのエラー rescue されなくなったのかしら。
config/boot.rb
-require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
+require 'bundler/setup' # Set up gems listed in the Gemfile.
ENV['BUNDLE_GEMFILE']
次第だったのが読まれるようになった。
Gemfile の一覧になってる gem を読む。
config/environments/development.rb
+ # Asset digests allow you to set far-future HTTP expiration dates on all assets,
+ # yet still be able to expire them through the digest params.
+ config.assets.digest = true
development 環境でも assets.digest が true になったらしい。
environments/production.rb
# Set to :info to decrease the log volume.
+ config.log_level = :debug
- # Disable automatic flushing of the log to improve performance.
- # config.autoflush_log = false
production での log_levele が debug になったらしい。
config/initializers/assets.rb
+# Add additional assets to the asset load path
+# Rails.application.config.assets.paths << Emoji.images_path
Emoji.images_path を追加する例が増えてる…。