3

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

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

我的想法是:

objects = @artist.tracks
objects << @artist

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

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

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

4

1 回答 1

6

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

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

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

于 2011-01-27T15:22:45.023 回答