3つの異なる属性で同じタスクを実行する必要があるメソッドをドライアップしようとしています。このような:
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を使用することはできません。主な理由は、バイナリファイルポインタが関係していて、ディープコピーも必要だからです。