大佬教程收集整理的这篇文章主要介绍了ruby-on-rails – Rails:使用“attributes”方法将属性从对象复制到另一个,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
让模型发票具有属性[价格,描述,优先级]
使用{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))
以上是大佬教程为你收集整理的ruby-on-rails – Rails:使用“attributes”方法将属性从对象复制到另一个全部内容,希望文章能够帮你解决ruby-on-rails – Rails:使用“attributes”方法将属性从对象复制到另一个所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。