我有这样的哈希:
{
"feid"=>32,
"fid"=>11,
"fipl"=>11,
}
我想将每个值保存到数据库中的相应列。
我知道我可以做以下事情
record = Metric.new
record.feid = hash['feid']
record.fid = hash['fid']
record.fipl = hash['fipl']
record.save
但我的哈希比3个元素长得多,而且必须有更简单的方法!
答案 0 :(得分:4)
有。对于新记录(一次创建,分配和保存到数据库):
record = Metric.create(hash)
创建和分配而不保存:
record = Metric.new(hash)
对于现有记录,分配和保存:
record.update_attributes(hash)
和未保存的分配:
record.assign_attributes(hash)
注意:
如果保存失败(例如,由于验证失败),保存方法(create
和update
)不会引发异常。豁免安静地失败。如果您希望在发生这种情况时获得异常,请使用带有版本的内容:create!
和update_attributes!