我正在寻找相当长的一段时间,我无法弄清楚如何在hash中使用hash创建活动记录,除了哈希中的特定键。
我目前正在做的是
ingre = {:name => "pepper", :std_qty => 2, :quantity => 20}
quantity = ingre[:quantity]
ingre.delete(:quantity)
ingredient = Ingredient.new(ingre)
ingredient.save!
我的quantity
表格中没有ingredients
列,只有name
和std_qty
。我不想使用删除,因为它不是很简洁的方式。我知道有一些方法可以在构建对象ingredient
时避免密钥数量而不是从外部删除。任何人都可以告诉我它是什么
答案 0 :(得分:0)
我想出了怎么做。您只需要使用hash.except(:key_name)
所以上面的代码将变成
ingre = {:name => "pepper", :std_qty => 2, :quantity => 20}
ingredient = Ingredient.new(ingre.except(:quantity))
ingredient.save!