rails build or update method?

В настоящее время я использую метод find или create для обновления связанной записи, которую я использую для хранения кэшированной информации, но мне интересно, есть ли более простой альтернативный метод похож на build, поскольку объект является отношением has_one . Проблема с простым использованием build_ в том, что в большинстве случаев объект будет существовать и его необходимо обновить. Я мог бы использовать кучу проверок ifs, но задавался вопросом, есть ли какие-нибудь лучшие rails-fu, чем я использую сейчас.

  def self.update_caches(data)
    cache = SpaceCache.find_or_create_by_space_id(@space.id)
    cache.rating = ((data.ratings.sum / data.ratings.size)/20).round
    cache.price_min = @space.availables.recent.average(:minimum)
    cache.price_avg = @space.availables.recent.average(:price)
    cache.save
  end

Бонус:

Я также читал здесь:

http://m.onkey.org/active-record-query-interface

Что методы расчета рельсов среднее, сумма и т. Д. Будут обесценены в 3.1, я не уверен, нужно ли мне их заменять?

count(column, options)
average(column, options)
minimum(column, options)
maximum(column, options)
sum(column, options)
calculate(operation, column, options)

5
задан holden 19 April 2011 в 07:53
поделиться