前提
Ruby on Railsでのモデルの並び替えについてです。
次のように、それぞれの著者が多数の本を出版している関係をモデルに定義しているとします。
ruby
1class Author < ApplicationRecord 2 has_many :books 3end
ruby
1class Book < ApplicationRecord 2end
実現したいこと
Book側に、著書の出版日(published_date)のようなカラムが存在するとして、
ruby
1@authors = Author.all 2 3 4## (例えば)逐次表示したいとき 5@authors.each do |author| 6 p author.name 7 author.books.each do |book| 8 p book.name 9 p book.pulished_date 10 end 11end
などとしてAuthor全体を変数に格納、逐次アクセスするとき、
- 「各著者の最新のBookの出版日が新しい順に、Authorを並び替えたい」
のですが、こうしたことは可能でしょうか。
例えば
text
1### 太宰治 21. 最新の単行本は1948年11月10日出版の「如是我聞」 32. 次に新しいのは1948年7月25日出版の「人間失格」 4 5### 東野圭吾 61. 最新の単行本は2023年03月17日出版(予定)の「魔女と過ごした七日間」 72. 次に新しいのは2022年11月20日出版の「夢幻花 (上)」 8 9(間違ってたらごめんなさい)
このとき、
- 2人のそれぞれの最新著作の出版日(1948年03月17日と2023年11月20日)を比較したとき、2023年の方が新しいので、
@authors
の最初に格納されるデータは「東野圭吾」にしたい
といったことです。(2番目以降の著作の出版日はどうでも良いです)
補足情報(FW/ツールのバージョンなど)
Ruby on rails 7です。
よろしくお願いいたします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。