Rails 5.0 で地味にうれしかった事
Lチカ をつくるにあたって、Rails 5.0 を利用したので、ここまでで感じた地味にうれしかった事。
- rakeコマンドをrailsコマンドに統一
- force_sslについて
- Rails 5.0 に入ったDB破壊系taskの防止処理について
- enumの定義に:prefix/:suffixオプションを追加
- モデルの継承元が ActiveRecord::Base から ApplicationRecord になった
rakeコマンドをrailsコマンドに統一
rakeタスクをbin/railsで置き換え。
今までは、migration系とかはrakeを利用して、Railsのアプリケーションに関わる操作は ./bin/rails s
とかを利用してたけど、それが統一。
正直これは長年使ってると慣れちゃうけど、これからRailsを学習する人には嬉しいと思う。
Rails 5.0で追加される主な新機能(Ruby on Rails公式ブログより) - Qiita
force_ssl
より安全にSSLを試したりオフにしたりできるよう、config.force_sslとconfig.ssl_optionsを簡単に導入。
Rails3にあって、 Rails4でなくなって Rails5で復活
という流れなのかな?
ELBのヘルスチェックの際に非常に楽になる
config/environments/production.rb
config.force_ssl = true config.ssl_options = { redirect: { exclude: -> request { request.path =~ /healthcheck/ } } }
ただ config/environments
直下の環境設定に config.ssl_options
を設定しても反映されず
config/initializers/new_framework_defaults.rb
にある
Rails.application.config.ssl_options = { hsts: { subdomains: true } }
がデフォルトで記述されているため、この記述を削除するかここに追記しないと反映されない
Rails.application.config.ssl_options = { hsts: { subdomains: true }, redirect: { exclude: ->(request) { request.path =~ /healthcheck/ } } }
ruby - skip/disable force_ssl for particular controller in rails - Stack Overflow
Rails4のforce_sslでELBからのヘルスチェックを除外する - Qiita
Rails 5.0 に入ったDB破壊系taskの防止処理について
productionモードでのdb操作系のコマンドに制限が入ることに。 間違えてDBを消すとかの恐怖からの解放。
Rails 5に入ったDB破壊系taskの防止処理について | 日々雑記
enumの定義に:prefix/:suffixオプションを追加
Rails 4.1 から導入された enum にprefix、suffix機能が追加。 enumに近い機能を提供するgemの enumerize では既にあったが、 Railsの機能として追加。
class Conversation < ActiveRecord::Base enum status: [:active, :archived], _suffix: true enum comments_status: [:active, :inactive], _prefix: :comments end
conversation.active_status! conversation.archived_status? # => false conversation.comments_inactive! conversation.comments_active? # => false
モデルの継承元が ActiveRecord::Base から ApplicationRecord になった
rails g model
等でモデルを生成した場合に、app/models/application_record.rb
が作成され、ActiveRecord::Baseではなく、ApplicationRecord から継承されるように変更。
これで何が嬉しいかというと、アプリケーションのモデル全体への変更が楽に。
これまでは ActiveRecord::Base の再オープンや、 Module を作って各モデルにincludeをさせるとかしてたけど、これからは ApplicationRecord を変更すればOK.
今から知っておきたいRails 5の新機能・変更点 - Qiita
- 作者: 掌田津耶乃
- 出版社/メーカー: 秀和システム
- 発売日: 2016/12/17
- メディア: 単行本
- この商品を含むブログを見る