Ruby   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了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,请注明来意。
标签: