将数组值与散列值结合起来
问题描述:
我有一个由我定义的属性数组,我得到了他们两个都需要组合成输出数组的散列值。请让我知道最简单的方法来做到这一点。将数组值与散列值结合起来
属性 = [: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”=>“是”}
感谢您的帮助!
答
试一下这个
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"}
感谢这有助于!我现在有另一个问题。当我尝试通过执行model.create!(输出)将输出哈希插入到数据库中时,它无法这样做。任何帮助,将不胜感激 – Archie123
@ Archie123你得到什么类型的错误?你可以展示它的属性是什么模型? –