たとえばUserモデルがhas_manyでArtWorkを持っているときに、最新のArtWorkをhas_oneでも持ちたい場合の実装方法を解説します。
まずhas_many関係だけの場合はこうなりますね。
class User < ApplicationRecord
has_many :art_works, dependent: :destroy
has_one :art_work, ->{ order(created_at: :desc) }
end参照する名前をlatest_art_workなどのようにモデル名から自動類推が不可能なものに設定したい場合はclass_nameのオプション引数を指定して参照先のモデルを明示的にしましょう。
class User < ApplicationRecord
has_many :art_works, dependent: :destroy
has_one :latest_art_work, ->{ order(created_at: :desc) }, class_name: 'ArtWork'
end参考
activerecord - Rails Associations has_one Latest Record - Stack Overflow