ruby-on-rails – 更好的方法来构建has_one关联或更新(如果存在)

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 更好的方法来构建has_one关联或更新(如果存在)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的折扣类有一个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

猜你在找的Ruby相关文章