Ruby on rails 如何简洁地复制ActiveRecord对象并更改属性?

Ruby on rails 如何简洁地复制ActiveRecord对象并更改属性?,ruby-on-rails,ruby,Ruby On Rails,Ruby,这可以用更少的行来完成吗 clone = self.dup clone.assign_attributes owner: owner clone.save 即使是两行也比三行好 我不知道Rails,但我认为这会起作用: self.class.create(attributes.merge(owner: owner)) dup.tap { |clone| clone.assign_attributes(owner: owner) }.save 我不知道Rails,但我认为这是可行的: dup

这可以用更少的行来完成吗

clone = self.dup
clone.assign_attributes owner: owner
clone.save

即使是两行也比三行好

我不知道Rails,但我认为这会起作用:

self.class.create(attributes.merge(owner: owner))
dup.tap { |clone| clone.assign_attributes(owner: owner) }.save

我不知道Rails,但我认为这是可行的:

dup.tap { |clone| clone.assign_attributes(owner: owner) }.save

就在钱上。我甚至会说
create
更好,因为如果出现问题,它会发出很多噪音。太棒了!但是
attributes
是在哪里定义的?
attributes
是在货币上定义的,包含在
ActiveRecord::Base
中。我甚至会说
create
更好,因为如果出现问题,它会发出很多噪音。太棒了!但是
属性
在哪里定义?
属性
在其中定义,包含在
ActiveRecord::Base
请阅读“”及其链接中。我们希望看到一个更具指示性的标题,以及对问题的描述和您试图实现的目标。因此,这不仅仅是回答你的问题,它还有一个长期目标,就是为那些在未来寻找解决方案的人回答类似的问题。所以,为他们写问题,而不仅仅是为你自己。另外,如果您的代码正常工作,那么它可能是一个比堆栈溢出更好的站点。@theTinMan谢谢!我不知道代码审查,我一定会试试。关于这个问题,我很想有一个更好的标题,但是我想不出一个,你有什么建议吗?不要问这个关于代码审查的问题。它太普通了,可能会被否决或关闭。更好的标题建议:如何简洁地复制ActiveRecord对象并更改属性?请阅读“”及其链接。我们希望看到一个更具指示性的标题,以及对问题的描述和您试图实现的目标。因此,这不仅仅是回答你的问题,它还有一个长期目标,就是为那些在未来寻找解决方案的人回答类似的问题。所以,为他们写问题,而不仅仅是为你自己。另外,如果您的代码正常工作,那么它可能是一个比堆栈溢出更好的站点。@theTinMan谢谢!我不知道代码审查,我一定会试试。关于这个问题,我很想有一个更好的标题,但是我想不出一个,你有什么建议吗?不要问这个关于代码审查的问题。它太普通了,可能会被否决或关闭。一个更好的标题建议:如何简洁地复制ActiveRecord对象并更改属性?