rails observer更新不同模型上的属性

时间:2012-04-19 19:33:57

标签: ruby-on-rails ruby-on-rails-3.1 observer-pattern

我正在观察投标模型,当创建新的出价时,我希望能够更新随附型号的当前要价。我的设置如下:

class BidObserver < ActiveRecord::Observer
  def after_create(bid)
    load = Load.find(bid.load_id)
    arr = load.bids.collect { |bid| bid.bid_price }
    if arr.min < load.current_asking_price
      load.current_asking_price = arr.min
      puts "#{load.current_asking_price}"
      load.save
    end
  end
end

//In config/application.rb
config.active_record.observers = :bid_observer

观察者工作正常,我可以在我的日志中看到当前要价正在设定,因为它输出了值。但是,该值未保存到数据库中,并且我编写的测试失败。在尝试保存价值时,我有什么遗漏的东西吗? (我也尝试调用update_attributes,相关属性已更改,但也无效)如果您需要更多信息,我会快速更新我的帖子。

current_asking_price属性在创建时设置如下:

// In the load model: 

before_create :set_current_asking_price

def set_current_asking_price
  default = self.budget
  self.current_asking_price = default 
end

这是目前为止current_asking_price

的唯一参考

0 个答案:

没有答案