Ruby:将对象添加到数组的末尾

时间:2011-01-27 15:18:13

标签: ruby-on-rails ruby enumerable

我有两个对象@tracks(一个可枚举的)和@artist,我想创建一个包含所有轨道和艺术家的枚举。这样我就可以将它们传递给一个方法(每个轨道,艺术家都有变化事件):

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

我的想法是:

objects = @artist.tracks
objects << @artist

但是这给了我第二行的错误(这是有道理的,但我不知道如何解决):

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

任何关于如何做到这一点的想法都将不胜感激!

1 个答案:

答案 0 :(得分:6)

这个(错误)表示它(@artist.tracks的返回值)不是您正在处理的数组,而是某些特定于轨道的数据类型。你可以试试

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

但是在数组中使用不同的值通常不好,如果它们都响应你需要的方法,那么你应该很好。