在rails中创建活动记录,但哈希中的特定键除外

时间:2015-07-24 06:32:10

标签: ruby ruby-on-rails-3 postgresql activerecord hash

我正在寻找相当长的一段时间,我无法弄清楚如何在hash中使用hash创建活动记录,除了哈希中的特定键。

我目前正在做的是

  ingre = {:name => "pepper", :std_qty => 2, :quantity => 20}

  quantity = ingre[:quantity]
    ingre.delete(:quantity)
  ingredient = Ingredient.new(ingre)
  ingredient.save!

我的quantity表格中没有ingredients列,只有namestd_qty。我不想使用删除,因为它不是很简洁的方式。我知道有一些方法可以在构建对象ingredient时避免密钥数量而不是从外部删除。任何人都可以告诉我它是什么

1 个答案:

答案 0 :(得分:0)

我想出了怎么做。您只需要使用hash.except(:key_name)

所以上面的代码将变成

ingre = {:name => "pepper", :std_qty => 2, :quantity => 20}
ingredient = Ingredient.new(ingre.except(:quantity))
ingredient.save!