2017-07-03 55 views
0

我有一个由我定义的属性数组,我得到了他们两个都需要组合成输出数组的散列值。请让我知道最简单的方法来做到这一点。将数组值与散列值结合起来

属性 = [:USER_ID,:PROJECT_ID,:TASK_ID,:日期,:time_spent,:评论]

entry_hash = { “用户”=> 1, “项目”=> [8 ],“任务”=> [87],“日期”=>“05/22/2017”,“时间(小时)”=>“1”,“评论”=>“是”}

它被组合我要像

输出 = { “USER_ID”=> 1 “PROJECT_ID”=> 8, “TASK_ID”=> 87, “日期”=> 6的散列/ 22/2017,“time_spent”=> 1,“comment”=>“是”}

感谢您的帮助!

回答

1

试一下这个

attributes = [:user_id, :project_id, :task_id, :date, :time_spent, :comment] 
# puts attributes.inspect 
entry_hash = {"User"=>1, "Project"=>[8], "Task"=>[87], "Date"=>"05/22/2017", "Time (Hours)"=>"1", "Comment"=>"yes"} 
# puts entry_hash.inspect 

output = {} 
a = 0 
entry_hash.each do |key,value| 
    if value.class == Array 
     output[attributes[a]] = value.first.to_s 
     #output[attributes[a]] = value.first.to_i //also you can convert them into int 
    else 
     output[attributes[a]] = value 
    end 
    a += 1 

end 
#puts output.inspect 
#{:user_id=>1, :project_id=>"8", :task_id=>"87", :date=>"05/22/2017", :time_spent=>"1", :comment=>"yes"} 
+0

感谢这有助于!我现在有另一个问题。当我尝试通过执行model.create!(输出)将输出哈希插入到数据库中时,它无法这样做。任何帮助,将不胜感激 – Archie123

+0

@ Archie123你得到什么类型的错误?你可以展示它的属性是什么模型? –