让模型报价有属性[价格,描述]
让模型发票具有属性[价格,描述,优先级]
使用{price:10,description:’lamp’,priority:10}的模型发票中的一个对象发票
invoice = {price: 10,description: 'lamp',priority: 10}
假设我想将发票属性复制到新的报价.
quote = Quote.new(invoice.attributes)
这引发了模型报价中不存在优先级的错误.
解决方法
你可以
select
只有Quote的属性:
Quote.new(invoice.attributes.select{ |key,_| Quote.attribute_names.include? key })
As noted by @aceofspades(但不是动态解决方案),您也可以使用ActiveSupport的slice
:
Quote.new(invoice.attributes.slice(Quote.attribute_names))