我有这行代码来查找数据库中的行,或者创建一个新行。正在工作,但它看起来非常丑陋且难以维护。
return_policy_id= MyEbayReturnPolicy.find_or_create_by_active_and_name_and_ebay_marketplace_id_and_returns_within_and_returns_accepted_and_warranty_offered_and_warranty_duration_and_warranty_type_and_shipping_costs_paid_by_and_refunds(active,name,ebay_marketplace_id,returns_within,returns_accepted,warrenty_offered,warranty_duration,warranty_type,shipping_costs_paid_by,refunds)
这是 find_or_create 代码
def self.find_or_create(search, *args, &block)
parameters = search.split("_and_")
params = Hash[ parameters.zip(args) ]
obj = where(params).first
if(obj.nil?)
obj = self.new(params);
obj.save
end
return obj;
end
如您所见,这是非常长的代码行。
我想知道是否有更好的方法让这段代码看起来漂亮干净,易于维护。
谢谢!