我基本上是将一个对象信息复制到另一个对象。一般来说,代码或方法可能不是经过深思熟虑的,但这不是我现在的问题。
这是错误:
syntax error, unexpected '=', expecting keyword_end
original.send("#{attribute}") = edited.send("#{attribute}")
^
我正在做的是遍历 object2 的所有属性,然后将每个属性“复制”到对象 1。我可以为每个模型指定这个,但我想要一个单独的 implement_changes 方法,它基本上适用于每个类. 复制模型 belongs_to :edited 和 :original 通过多态关联。
class Copy < ActiveRecord::Base
def implement_changes
original = self.original_type.constantize.find(original_id)
edited = self.edited_type.constantize.find(edited_id)
accessible_attributes = original_type.constantize.accessible_attributes.to_a.select{|a| a != "slug"}
accessible_attributes.shift
accessible_attributes.each do |attribute|
original.send("#{attribute}") = edited.send("#{attribute}")
end
original.save!
end
为什么那个块不起作用?我不明白。这里发送的用法正确吗?它不会让我做 original.attribute。
任何帮助表示赞赏!:)