Динамические искатели на основе атрибутов с активной записью RoR, Model.find_by_ не работает - PullRequest
2 голосов
/ 30 августа 2011

Я новичок в RoR,

Среда: Rails 3.09 и ruby ​​1.9.2p290 установлены на леопарде

Я внимательно следую руководству Майкла Хартла (http://ruby.railstutorial.org/). В главе7, с консолью мы должны проверить этот код:

$ rails console --sandbox
>> User.create!(:nom => "Michael Hartl", :email => "mhartl@example.com",
?>              :password => "foobar", :password_confirmation => "foobar")
>> user = User.find_by_email("mhartl@example.com")
>> user.has_password?("foobar")
=> true 

Моя проблема с использованием искателей на основе атрибутов find_by_ (имя атрибута). В моем примере find_by_email.

На самом деле rails, похоже, не принимает find_by_ в качестве метода. Тем не менее, в приведенном выше примере в строке user.has_password? ("Foobar") rails возвращает ошибку: NoMethodError: метод undefined.определено в моей модели.

Я проверил документ API рельсов 3.0.9, и если я использую этот способ:

>> user = User.where(:email => "mhartl@example.com")

, то это работает ....

Поэтому мне интересно, почему я не могу использовать метод find_by_? Другие методы поиска работают ex: find.first, find.last и т. Д.
Спасибо, что помогли мне fabien

1 Ответ

0 голосов
/ 30 августа 2011

На самом деле искатель работает в файле модели, но не в консоли (среда разработки). эксцентричный Фабьен

...