はじめに
Rails 6 に追加されそうな新機能を試す第26段。 今回は、 MySQL の utf8mb4
編です。
Rails 6.0.0 では、 rails new -d mysql を実行(データベースにMySQLを指定)したときに encoding が utf8mb4 になります。
Ruby 2.6.3, Rails 6.0.0.rc1 で確認しました。Rails 6.0.0.rc1 は gem install rails --prerelease
でインストールできます。
$ rails --version
Rails 6.0.0.rc1
Rails プロジェクトを作る
-d mysql
を指定します。
$ rails new rails6_0_0rc1 -d mysql
$ cd rails6_0_0rc1
database.yml を確認する
yda database.yml を確認すると、 encoding が utf8mb4 になっていることがわかります。
default: &default
adapter: mysql2
encoding: utf8mb4
...
User の CRUD を作る
utf8mb4 を試すために、実際に User の CRUD を作ります。
$ bin/rails g scaffold User name
データベースの migration
$ bin/rails db:create db:migrate
rails server
を実行してユーザーを登録する
bin/rails s
を実行して、 http://localhost:3000/users/new にアクセスして User を登録します。
このとき name に 🍣と🐟
を入力します。
$ bin/rails s
Rails 6.0.0rc1 では無事に登録できました。
Rails 5.2.3 ではエラーになります。
蛇足ですが
name
に絵文字はないだろうとか思ったりしましたが、そこはスルーで。
rails g scaffold Book title
とかにした方がまだ良かったかもと思わないでもないです...。
スクリーンショットの絵文字とこの記事の絵文字の見え方が違うのは、多分 OS の(フォント?)の違いです。
スクリーンショットは Ubuntu 16.04 の Chrome で取ったものです。
試したソース
試したソースは以下にあります。
https://github.com/suketa/rails6_0_0rc1/tree/try026_mysql_utf8mb4