我正在尝试干燥一种方法,在该方法中我需要对三个不同的属性执行相同的任务。像这样:
if !@item.picture.blank?
picture_copy = Picture.new
picture_copy.save!
item_copy.picture = picture_copy
end
if !@item.picture_for_x.blank?
picture_for_x_copy = PictureForX.new
picture_for_x_copy.save!
item_copy.picture_for_x = picture_for_x_copy
end
if !@item.picture_for_y.blank?
picture_for_y_copy = PictureForY.new
picture_for_y_copy.save!
item_copy.picture_for_y = picture_for_y_copy
end
所以基本上我正在运行相同的代码,但实例化不同的对象,然后将它们分配给不同的属性。感觉应该有一种方法可以使用反射来干燥这个视图。有没有一种方法可以将这些属性和对象作为传递给辅助方法的字符串来引用?
由于各种原因,我不能只使用 .clone 或 .dup:主要是因为涉及到二进制文件指针,而且我还需要深拷贝。