【发布时间】:2017-11-06 22:52:09
【问题描述】:
用详细的例子重写问题:
我有一个具有三个属性的对象数组,我想构建一个苛刻的数组,并且生成的哈希没有@name 实例属性。我用一个例子模拟了这个问题。
示例创建
class Employee
attr_accessor :name, :company, :duration
def initialize(name, company, duration)
@name = name
@company = company
@duration = duration
end
end
aSong1 = Employee.new("Fleck", "AMZ", 260)
aSong2 = Employee.new("Taylor", "EMC", 120)
aSong3 = Employee.new("Bob", "Adobe", 260)
aSong4 = Employee.new("Jack", "Google", 360)
final_array = [ ]
final_array.push(aSong1)
final_array.push(aSong2)
final_array.push(aSong3)
final_array.push(aSong4)
控制器
puts final_array.length #4
final_array.each do | element |
puts element.is_a?(Object) #true
puts element.name #prints name
end
结果数组(预期)
result = [{company: 'AMZ',duration: 260}, {company: 'EMC',duration: 120},{company: 'Adobe',duration: 260}, {company: 'Google',duration: 360} ]
示例:repl
【问题讨论】:
-
你确定这不是应该在数据库中完成的事情,而不是拉出一堆数据并在 Ruby 中对其进行排序吗?
-
我现在正试图在控制器中处理这个问题,因为它在数据库端有很多依赖项需要改变。
-
它也很不清楚您所说的“在下一步中我想将此对象数组与哈希数组(例如:比较)进行比较以查看是否找到任何匹配以更新名称”。输入是什么,输出应该是什么?
-
可以通过
@user_data.map {|h| h.except("id") }删除id -
@我的意思是,一旦 id 被删除,我想将结果与
example: compare代码 sn-p 进行比较,以查找是否有任何匹配项
标签: ruby-on-rails arrays ruby hash