我的折扣类具有sales_period。我想写一个方法,当它不存在时可以建立这种关联,或者当它存在时更新它。目前我正在撰写以下条件。建立has_one关联或更新(如果存在)的更好方法
class Discount < ActiveRecord::Base
has_one :sales_period
def fetch_period
end_date = ...
if sales_period.nil?
build_sales_period(end: end_date)
else
sales_period.end = end_date
end
end
end
有没有更好的方法来做到这一点,类似于find_or_create
?
谢谢,它稍微好一点,我认为这是最好的。 – lulalala 2012-02-01 05:34:44
是的,这取决于fetch_period方法实际做了什么,但如果你在多个地方使用它,我会考虑将那一行逻辑移动到它自己的方法 – 2012-02-01 08:05:21