我已经创建了一个帮助器来返回一个数组,具体取决于参数。
self.modules(package)
package1 = [:mod1, :mod2, :mod5]
package2 = [:mod3, :mod9, :mod10]
package3 = [:mod4, :mod6, :mod7, :mod8, :mod7]
all = package1 + package2 + package3
return package1 if package == 'package1'
return package2 if package == 'package2'
return package3 if package == 'package3'
return all if package == 'all'
end
轨道中是否有可能只是说
return package
我已经尝试了 package.to_sym ,但它不起作用。
答案 0 :(得分:2)
执行所需操作的一种方法是将选项组合为哈希:
self.modules(package)
packages = {
package1: [:mod1, :mod2, :mod5],
package2: [:mod3, :mod9, :mod10],
package3: [:mod4, :mod6, :mod7, :mod8, :mod7]
}
packages[:all] = packages.values.flatten
return packages[package.to_sym]
end
这也可以让你避免元编程(说过这个我并不是说元编程很糟糕,但IMO在给定的情况下是不必要的)
答案 1 :(得分:2)
尝试
self.modules(package)
package1 = [:mod1, :mod2, :mod5]
package2 = [:mod3, :mod9, :mod10]
package3 = [:mod4, :mod6, :mod7, :mod8, :mod7]
all = package1 + package2 + package3
binding.local_variable_get(package)
end