MedBeer -Rails 5.1での開発について https://medpeer.connpass.com/event/58805/
Why? Rails 5.1Kyuden Masahiro
View Slide
whoami●Name: Kyuden Masahiro●Github: kyuden●Twitter: @kyuden_●Gems:– sorcery: committer●https://github.com/Sorcery/sorcery– banken : creator●https://github.com/kyuden/banken
5 分で Web サービスを 30 ヶ国語対応
Rails 5.1 の新機能 / 変更点を一部紹介しますが、最後に脱線します
form_with
form_with●form_for と form_tag が form_with に統合された– 統合だけでなく、いくつか改善も行われておりform_for や form_tag と少しデフォルトの挙動が違うので注意が必要– form_for と form_tag は今後 deprecate になる予定
form_with`model:` を使うと form_for のようなモデルに基づいたフォームが生成できる
form_with`url:` を使うと form_tag のようなモデルに基づかないフォームを生成できる
Why?
form_withhttps://github.com/rails/rails/issues/25197
form_with●form_with はデフォルト `remote: true`● 次の設定を false に設定することでデフォルトを local:true に変更できるconfig.action_view.form_with_generates_remote_forms = false
form_with●form_with はデフォルトで form タグや Inputタグに class 属性や id 属性を付与しない
form_with●form_with で form タグに class 属性や id 属性などの HTML 属性を付与する際 `html{}` でラップする必要はない
form_with●form_with はモデルの属性に存在しないフィールドを FormBuilder オブジェクト経由で指定できる
Encryptedsecrets
Encrypted secrets●config/secrets.yml とは別に秘匿情報を管理する仕組み● 暗号化して管理できることが特徴
Encrypted secretsbin/rails secrets:setup
Encrypted secretsEDITOR=vim bin/rails secrets:edit
Encrypted secrets● 暗号化 / 複合のための鍵はconfig/secrets.yml.key に定義する以外に環境変数 $RAILS_MASTER_KEY に設定することも可能●Rails5.1 で新規に作られたアプリ以外はデフォルトでは Encrypted secrets を読み込む以下の設定が false になっているので注意config.read_encrypted_secrets = true● 暗号化方式は aes-128-gcm
Encrypted secrets●config/secrets.yml に秘匿情報をベタ書きするとセキュリティ的にバージョン管理できない⬇ 秘匿情報ごとに環境変数を用意し実際の値は外部のリポジトリやサービスで管理するなどして運用⬇ しかし、アプリケーションコードと秘匿情報の管理場所が異なると、どの時点のアプリケーションコードがどのような秘匿情報を必要とするのか把握するのが難しい ( 工夫が必要 )⬇ そう考えると、アプリケーションコードと共にバージョン管理できた方がいい⬇ バージョン管理するためには暗号化が必要○ そこで Encrypted secrets
Encrypted secrets● なぜ config/secrets.yml は 5.1 でも残っているのか● なぜフォーマットは YAML なのか、 etchttps://github.com/rails/rails/issues/25095
Keep Motivation
Keep Motivation⬇ そこそこ長く Rails( 特定のフレームワーク ) を使って詳しくなると Rails への興味が徐々に薄れていく ( 自分の場合は ) 。⬇Rails の新バージョンがリリースされると、新しい機能や変更点は一応確認するが、 Rails の知識がついても自分の力になっている感じがしない( 興味が薄れるとなおさらそう感じる ) 。
Keep Motivation⬇DHH などがたてた新しい機能や大きな変更点の案が記載された ISSUE やコメントでの議論を読んでその Why を知ると、いろいろな学びがある。⬇ そこで得た学びは Rails に限らず、他のフレームワークを使う場合や、設計で悩んだ際にも応用できる。⬇Rails に慣れて取れ高が少なくなってきた方なんかは、 ISSUE やコメントでの議論の内容がよくわかると思うので特に楽しめるかも?○ モチベーションを保てる!
Rails 5.1 の新機能 / 変更点全然紹介できてない ..
続きはWEB+DB PRESSで !