我的折扣类有一个sales_period.我想编写一个方法,可以在不存在时构建此关联,或者在它存在时更新它.目前我正在编写以下条件.
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?
解决方法
不是你想要的,但你可以稍微缩短它.
def fetch_period end_date = ... period = sales_period || build_sales_period period.end = end_date end