我有兩個類:一個用於創建歌曲,另一個用於製作播放列表,播放列表播放歌曲。使用參數訪問類
class Song
attr_accessor :title , :artist
def initialize(title, artist)
@title = title
@artist = artist
end
end
class Playlist
def initialize(*songs)
@playlist = []
songs.each{|key|
add(key)
}
end
def add(*songs)
songs.each {|key|
@playlist << key
}
end
end
我創作歌曲:
anna_sun = Song.new("Anna Sun", "Walk The Moon")
girls = Song.new("Girls", "The 1975")
然後添加這些歌曲到一個新的Playlist
:
alternative = Playlist.new(anna_sun, girls)
我想創建一個名爲sort_by
的Playlist
類裏面的方法。我想sort_by
採取一個參數,告訴通過什麼來排序播放列表。這是我想出的
class Playlist
def sort_by(type)
@playlist.sort_by! {|item|
item.type
}
end
end
但是,這不起作用的原因有兩個。其中一個,我試圖稱之爲
alternative.sort_by(artist)
它說artist
沒有定義。還有兩個,它說type
是一個未定義的方法。我想知道是否有辦法得到我想要的結果。