Ruby on rails Rails从散列中保存多个记录

Ruby on rails Rails从散列中保存多个记录,ruby-on-rails,ruby-on-rails-4,activerecord,Ruby On Rails,Ruby On Rails 4,Activerecord,我有以下散列,其中包含用户的名称和已售出的物品: {"dave"=>9, "steve"=>20} 我通过以下方式在我的rawdatam索引中创建了它: @consolidated_rawdata = Rawdatum.all.group(:user).sum(:items_sold) 我现在要做的是,通过一个操作(单击一个按钮)将两个对象从该散列(dave&steve)保存到一个名为reports的表中,该表有两列:user和items\u selled,如下所示: 我怎样才

我有以下散列,其中包含用户的
名称
已售出的物品

{"dave"=>9, "steve"=>20}
我通过以下方式在我的
rawdatam索引中创建了它:

@consolidated_rawdata = Rawdatum.all.group(:user).sum(:items_sold)
我现在要做的是,通过一个操作(单击一个按钮)将两个对象从该散列(dave&steve)保存到一个名为
reports
的表中,该表有两列:
user
items\u selled
,如下所示:


我怎样才能做到这一点呢?

不知道这是否算作一个单独的操作,但您可以像这样迭代哈希:

@consolidated_rawdata.each {|name, items_sold| Report.create(user: 
  name, items_sold: items_sold)}

如果一个动作仅仅是一次点击,那么它真的很简单。我们可以循环散列并保存记录

我会把它放在一个类似报告的模型中

class Report < ApplicationRecord
  #Report.create_consolidated_rawdata
  def self.create_consolidated_rawdata
    @consolidated_rawdata = Rawdatum.all.group(:user).sum(:items_sold)
    @consolidated_rawdata.do |name, items_sold| 
      Report.create(user: name, items_sold: items_sold)
    end
  end
end
类报告

我希望这能起作用

我该把它放在哪里?在我的报告中创建操作?我现在处于Rawdata索引操作/视图中。非常感谢您提供的解决方案。稍后我将尝试使用此选项,以使我的代码更漂亮。:-)我很高兴能帮上忙我该把它放在哪里?在我的报告中创建操作?我现在处于Rawdata索引操作/视图中。我想这取决于您的应用程序。您可以创建一个按钮,该按钮在ReportsController上调用一个操作,该操作查询合并的\u数据,然后创建报告。