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

create active record in rails except particular key in hash

我搜索了很长时间,但我不知道如何在 rails 中使用散列创建活动记录,散列中的特定键除外。

我现在正在做的是

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

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

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

我知道怎么做了。你只需要使用 hash.except(:key_name)

所以上面的代码会变成

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