2013-06-25 116 views
0

這是我不清楚這是爲什麼不工作:爲什麼我不能使用create_or_update?

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) 

怎麼辦?

回答

3

這不起作用,因爲該方法不由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,你應該知道,如果你有一個記錄,對不對?很難說出你想做什麼,但有些東西是可疑的。

+1

不是? http://apidock.com/rails/ActiveRecord/Base/create_or_update – oldergod

+0

是啊,這是有點腥,我猜。我希望這工作的第一個(當表是空的時候)和其後的每一次。另外,是的,我認爲它是活躍記錄的一部分。 – Ramy

+0

@雷米真相在那裏! – oldergod