Подтвердить что ты не робот

MongoID найти или найти_by

MongoID docs кажется довольно ясным, что я должен иметь возможность запустить это и заставить его работать:

Band.find_by(name: "Photek")

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

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

Band.find(name: "Photek")

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

4b9b3361

Ответ 1

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

В find vs find_by, это из руководство по обновлению для Mongoid 2 → 3:

Model.find и model.relation.find теперь принимают только один или несколько идентификаторов. Model.first, Model.last больше не принимает аргументы. Вместо этого используйте Model.find_by.

IOW:

Монгоид 2:

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

Монгоид 3:

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