我有一个方法:
def create_data_arrays
@local_result_hash.each do |job|
@jobIds << job["jobId"]
@employerNames << job["employerName"]
@jobTitles << job["jobTitle"]
@minimumSalarys << job["minimumSalary"]
@maximumSalarys << job["maximumSalary"]
@expirationDates << job["expirationDate"]
@jobDescriptions << job["jobDescription"]
end
end
而在主类中:
@jobIds = []
@employerNames = []
@jobTitles = []
@minimumSalarys = []
@maximumSalarys = []
@expirationDates = []
@jobDescriptions = []
我想重构该方法,因此创建了以下数组:
@api_parameters = ["jobId", "employerName", "jobTitle", "minimumSalary", "maximumSalary", "expirationDate", "jobDescription"]
并将方法重构为:
def create_data_arrays
@local_result_hash.each do |job|
@api_parameters.each do |parameter|
"@#{parameter}" << job[parameter]
end
end
end
查询哈希工作正常,但"@#{parameter}"
不起作用。有什么建议吗?我在做疯狂的事吗?
寻找instance_variable_get
:
def create_data_arrays
@local_result_hash.each do |job|
@api_parameters.each do |parameter|
instance_variable_get("@#{parameter}s") << job[parameter]
end
end
end
另请参阅:apidock.com/ruby/Object/instance_variable_get
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句