为什么我不能使用create_or_update?

时间:2013-06-25 00:30:45

标签: ruby activerecord

我不清楚为什么这不起作用:

class FastGrowers < ActiveRecord::Base  
end 
FastGrowers.create_or_update(:id => t.id, :ticker => ticker, :five_year_growth_rate => growth_rate)

我得到了这个结果:

/var/lib/gems/1.9.1/gems/activerecord-3.2.13/lib/active_record/dynamic_matchers.rb:55:in `method_missing': undefined method `create_or_update' for #<Class:0x8aaa264> (NoMethodError)
是什么给了什么?

1 个答案:

答案 0 :(得分:4)

它不起作用,因为ActiveRecord不提供该方法。

也许你想要FastGrowers.find_or_create_by_id

grower = FastGrowers.find_or_create_by_id(t.id)
grower.update_attributes(:ticker => ticker, :five_year_growth_rate => growth_rate)

但如果你有id,你应该知道你是否有记录,对吗?很难说你想要做什么,但有些东西是可疑的。