我在做一个吉他浏览项目。我有两个类别:Electric和Acoustic。我为这两个类别创建了两个方法:mass_create_electrics和mass_create_acoustics
@@electrics = []
@@acoustics = []
def self.electrics
@@electrics
end
def self.acoustics
@@acoustics
end
def self.mass_create_electrics(electric_hash)
electric_hash.each do |e_hash|
electric = HiStrung::Guitar.new(e_hash[:name], e_hash[:url])
@@electrics << electric
end
end
def self.mass_create_acoustics(acoustic_hash)
acoustic_hash.each do |a_hash|
acoustic = HiStrung::Guitar.new(a_hash[:name], a_hash[:url])
@@acoustics << acoustic
end
end正如你所看到的,这两种方法都在做同样的事情,所以我的目标是只制作一个同时实例化电吉他和声吉他的方法。这是我应该做的事情的清单。
在吉他类中创建一个包含两个参数(吉他哈希和吉他类别)的@@acoustics
到目前为止,我有这样的方法:
def self.mass_create_guitars(guitar_hash, category)
guitar_hash.each do |g_hash|
guitars = HiStrung::Guitar.new(g_hash[:name], g_hash[:url])
end
end但我不知道从这里往哪里走。
发布于 2020-05-09 19:27:15
这两种方法的两个不同之处是:
的数组
所以,这两件事应该是参数。哈希已经是一个参数,所以您所需要做的就是添加数组作为第二个参数:
def self.mass_create_guitars(guitar_hash, guitar_array)
guitar_hash.each do |guitar|
guitar_array << HiStrung::Guitar.new(guitar_hash[:name], guitar_hash[:url])
end
end
def self.mass_create_electrics(electric_hash)
mass_create_guitars(electric_hash, electrics)
end
def self.mass_create_acoustics(acoustic_hash)
mass_create_guitars(acoustic_hash, acoustics)
end顺便说一下,electric_hash和acoustic_hash是奇怪的名字,因为它们显然不是散列,它们看起来更像数组。
https://stackoverflow.com/questions/61702311
复制相似问题