2012-07-10 3 views
12

Mongoid docs, кажется, довольно ясно, что я должен быть в состоянии выполнить это и есть его работа:Mongoid найти или find_by

Band.find_by(name: "Photek") 

но, по крайней мере, с Mongoid 2.4.11 это дает мне NoMethodError.

Это, с другой стороны, работает:

Band.find(name: "Photek") 

Это достаточно легко изменить find_by к find, но я запутался, что происходит. Это случай, когда моя версия gem находится за документами или что?

ответ

15

Документы Mongoid теперь показывают версию 3 по умолчанию (это RC). Вы хотите посмотреть на документы here для Mongoid 2.

На find против find_by, это от upgrade guide для Mongoid 2 -> 3:

Model.find и model.relation.find теперь только возьмите один или несколько идентификаторов. 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 для Billy Talent (смеется). – user2398029

Смежные вопросы