【问题标题】:How to insert hash values into database?如何将哈希值插入数据库?
【发布时间】:2014-04-05 20:37:45
【问题描述】:

我有一个像这样的哈希:

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

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

我知道我可以做到以下几点

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

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

【问题讨论】:

  • record.update_attributes(hash)...如果记录已经存在,

标签: ruby-on-rails activerecord hash


【解决方案1】:

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

record = Metric.create(hash)

不保存的创建和分配:

record = Metric.new(hash)

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

record.update_attributes(hash)

不保存的赋值:

record.assign_attributes(hash)

注意:

如果保存失败(例如因为验证失败),保存方法(createupdate)不会引发异常。保存悄悄地失败了。如果您想在发生这种情况时获得异常,请使用 banged 版本:create!update_attributes!

【讨论】:

  • 非常感谢,我尝试了 record = Metric.new(hash) 但我想知道为什么它没有插入到数据库中。我现在明白为什么了:p
  • 作为一点额外的评论,您可以使用obj.assign_attributes(hash)obj.attributes = hash:两者是等价的,但在某些情况下,后者在语法上可能更可取。
猜你喜欢
  • 1970-01-01
  • 2017-02-28
  • 2015-10-13
  • 2011-11-22
  • 2012-07-28
  • 2021-07-25
  • 2014-12-13
  • 2013-10-27
  • 1970-01-01
相关资源
最近更新 更多