Вопрос

У меня есть два объекта @Tracks (перечисляемый) и @Artist, и я хотел бы создать перечисление со всеми треками и художником в них. Это так, что я могу передать их методу, который будет делать (каждый трек, и у художника есть события изменения):

change_events = object.map(&:change_events).flatten

Моя идея была:

objects = @artist.tracks
objects << @artist

Но это дает мне эту ошибку для второй строки (что имеет смысл, но я не знаю, как исправить):

Track(#17816) expected, got Artist(#17572)

Любые идеи о том, как я могу это сделать, будут оценены!

Это было полезно?

Решение

Эта (ошибка) сигнализирует, что она (возвращаемое значение @artist.tracks)-это не массив, с которым вы имеете дело, а некоторый тип данных, специфичный для рельсов. Вы могли бы попробовать

objects = @artist.tracks.to_a
objects << @artist

Но использование неоднородных значений в массиве часто не очень хорошо, если все они реагируют на нужный метод, который вам нужен, вы должны быть хорошими.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top