はじめに
Rails 6 に追加されそうな新機能を試す第50段。 今回は、 scaffold
編です。
Rails 6 では、 belongs_to な関係のあるモデルがあるアプリを scaffold で作った場合に、 belongs_to で指定される親モデルの表示のされ方が変わりました。
...ってなんだか良くわかりませんね。
実際にやってみた方がわかりやすいです。
Ruby 2.6.3, Rails 6.0.0.rc1, Rails 5.2.3 で確認しました。Rails 6.0.0.rc1 は gem install rails --prerelease
でインストールできます。
$ rails --version
Rails 6.0.0.rc1
rails プロジェクトを作る
$ rails new rails6_0_0rc1
$ cd rails6_0_0rc1
scaffold を使う
scaffold で Author と Book の CRUD を作成します。Book は、 Author に属します。
$ bin/rails g scaffold Author name
$ bin/rails g scaffold Book title author:references
seed データを作る
Author と Book のデータを1つずつ作成します。
author = Author.create(name: 'Dave Thomas')
Book.create(title: 'Programming Ruby', author: author)
データベースを作る
データベースを作って seed データを登録します。
$ bin/rails db:create db:migrate db:seed
rails server を実行して Book のデータを表示する
rails server を実行します。
$ bin/rails s
http://localhost:3000/books と http://localhost:3000/books/1 で一覧画面と詳細画面を表示します。
Rails 5 では
一覧画面でも詳細画面でも、Author はAuthorオブジェクト( Author#to_s
)を表示します。
一覧画面
詳細画面
Rails 6 では
一覧画面でも詳細画面でも、Author は ID ( Author#id
) の 1 を表示します。
一覧画面
詳細画面
試したソース
試したソースは以下にあります。
https://github.com/suketa/rails6_0_0rc1/tree/try050_scaffold