Допустим, у меня есть модель User
и модель Contact
. И у меня есть следующие отношения в классе user.rb
:
has_many :contacts
has_one :most_recent_contact, -> { order(created_at: :desc }
Я видел этот ответ: { ссылка }, и я подумал:
Что если бы я хотел добавить отношение has_many :previous_contacts
?
Так, если у пользователя было 5 контактов, has_many :contacts
вернул бы массив всех 5, has_one :most_recent_contact
вернул бы один контакт и has_many :previous_contacts
вернет массив из 4 контактов.
Конечно, я могу сделать это неэффективно с помощью чего-то вроде:
def previous_contacts
contacts - [most_recent_contact]
end
Но мне интересно, смогу ли я совершить sh то же самое с отношением has_many
, которое читается лучше (для меня)
Мысли?