ruby-on-rails - 如何将哈希值插入数据库?

标签 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 个元素长得多,必须有更简单的方法!

最佳答案

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

record = Metric.create(hash)

创建和分配而不保存:

record = Metric.new(hash)

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

record.update_attributes(hash)

以及不保存的分配:

record.assign_attributes(hash)

注意:

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

关于ruby-on-rails - 如何将哈希值插入数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22169776/

相关文章:

mysql - CI 多个类似条件 ActiveRecord

ruby-on-rails - 使用named_scope的加性链接

ruby-on-rails - 按 ActiveRecord 中的特定 id 排序

c - Merkle 树 - 设置数据并比较结果

hash - 如何计算 64 位哈希的冲突风险?

ruby-on-rails - 如何在 Vim 中缩进 Ruby 和 Rails 代码?

ruby-on-rails - 将两个常量合二为一

ruby-on-rails - 将 PG::Result 转换为 Active Record 模型

c++ - 需要将字符串存储为某些快速数据结构中的对象的 id

ruby-on-rails - 如何将 "config.include FactoryBot::Syntax::Methods"添加到 spec_helper.rb 中的 rspec 配置 block ?