我有这个哈希数组:
object = [
{:user_id=>9, :timesheet_project_id=>4, :timesheet_task_id=>87, :date=>"2017-08-23", :time_spent=>2.0, :comment=>"Test 23"},
{:user_id=>9, :timesheet_project_id=>4, :timesheet_task_id=>87, :date=>"2017-08-23", :time_spent=>2.0, :comment=>"Test 23"}
]
我正在尝试创建SheetEntry的新对象,并通过执行以下操作将其保存在模型中:
def self.save_entry(object)
entry=SheetEntry.new(object)
entry.save!
end
但是得到了这个错误:
NoMethodError(数组的未定义方法`stringify_keys')
答案 0 :(得分:2)
您需要迭代数组,以便可以使用它包含的每个哈希创建一个对象,例如:
def self.save_entry(object)
object.each do |item|
SheetEntry.create!(item)
end
end
请注意,使用create!
等同于创建新对象然后保存它(即new
然后save!
)。
正如Mr.Yoshiji所指出的,最好将方法名称更改为save_entries
,这表示它将处理多个对象。