Динамические искатели на основе атрибутов с активной записью RoR, Model.find_by_ не работает

Я новичок в 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 метод. Метод has_password? хорошо определено в моей модели.

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

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

тогда это работает....

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

1 ответ

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

Другие вопросы по тегам