加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails:使用“attributes”方法将属性从对象复

发布时间:2020-12-16 20:07:55 所属栏目:百科 来源:网络整理
导读:让模型报价有属性[价格,描述] 让模型发票具有属性[价格,描述,优先级] 使用{price:10,description:’lamp’,priority:10}的模型发票中的一个对象发票 invoice = {price: 10,description: 'lamp',priority: 10} 假设我想将发票属性复制到新的报价. quote =
让模型报价有属性[价格,描述]

让模型发票具有属性[价格,描述,优先级]

使用{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))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读