2012-07-10 39 views
12

的MongoID docs似乎是很清楚,我應該能夠運行這個和它的工作:MongoID發現或find_by

Band.find_by(name: "Photek") 

但至少有MongoID 2.4.11這給了我一個NoMethodError

此,在另一方面,工作原理:

Band.find(name: "Photek") 

這是很容易改變find_byfind,但我很困惑這是怎麼回事。這是我的寶石版本在文檔背後的情況,還是什麼?

回答

15

Mongoid文檔默認顯示版本3(它是一個RC)。你想看看文檔here爲Mongoid 2.

find VS find_by,這是從upgrade guide的Mongoid 2 - > 3:

Model.find和model.relation.find現在只採取單個或多個ID。 Model.first,Model.last也不再有參數。對於這些使用Model.find_by來代替。

IOW:

Mongoid 2:

Band.find(some_id) 
Band.find(name: "Billy Talent") 

Mongoid 3:

Band.find(some_id) 
Band.find(some_id, some_other_id) 
Band.find_by(name: "Billy Talent") 
+3

-1比利人才(LOL)。 – user2398029 2013-05-04 18:14:00