我正在尝试DRY一种方法,在这种方法中,我需要对三个不同的属性执行相同的任务。这样地:
if [email protected]?
picture_copy = Picture.new
picture_copy.save!
item_copy.picture = picture_copy
end
if [email protected]_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 [email protected]_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:主要是因为涉及二进制文件指针,我还需要深度副本。