こんにちは、リファクタリングしたいコードがあります
def gear_type
@gear_type ||= self.class.gear_types.find{|gears| gears["id"]==source["gear_type_id"]}["text"] if source["gear_type_id"]
end
def brand
@brand ||= self.class.brands.find{|node| node["id"]==source["brand_id"].to_s}["text"] if source['brand_id']
end
最善の方法は何ですか?eval または define メソッドを使用するには? 私はこれを試しましたが、まだ発見できないエラーがいくつかあります:
%w(gear_type brand).each do |meth|
define_method(meth){
instance_variable_get("@#{meth}") rescue
instance_variable_set("@#{meth}", self.class.send(meth.pluralize).find{|node| node["id"]==source["#{meth}_id"]}["text"]) if source["#{meth}_id"]
}
end