如何将哈希值插入数据库?

时间:2014-03-04 10:47:15

标签: ruby-on-rails activerecord hash

我有这样的哈希:

{
 "feid"=>32, 
 "fid"=>11, 
 "fipl"=>11, 
}

我想将每个值保存到数据库中的相应列。

我知道我可以做以下事情

    record = Metric.new
    record.feid = hash['feid']
    record.fid  = hash['fid']
    record.fipl = hash['fipl']
    record.save

但我的哈希比3个元素长得多,而且必须有更简单的方法!

1 个答案:

答案 0 :(得分:4)

有。对于新记录(一次创建,分配和保存到数据库):

record = Metric.create(hash)

创建和分配而不保存:

record = Metric.new(hash)

对于现有记录,分配和保存:

record.update_attributes(hash)

和未保存的分配:

record.assign_attributes(hash)

注意:

如果保存失败(例如,由于验证失败),保存方法(createupdate)不会引发异常。豁免安静地失败。如果您希望在发生这种情况时获得异常,请使用带有版本的内容:create!update_attributes!