0
У меня есть следующий код,find_by NoMethodError в Rails
user = User.find_by(email: params[:session][:email].downcase)
Это бросает ошибку
NoMethodError in SessionsController#create
undefined method `find_by' for #<Class:0x007f67187ef730>
Rails.root: /home/dj/portfolio/sample_app
Application Trace | Framework Trace | Full Trace
app/controllers/sessions_controller.rb:7:in `create'
В других частях кода я успешно используется find_by_email
без ошибок. Что может заставить этот метод не работать?
Хм, я фактически следую учебнику (railstutorial.org), и в обеих версиях учебника он использует тот же метод. Я изменил его на find_by_email и изменил код, и он работает. Спасибо за Ваш ответ! –
Я считаю, что это из-за выпуска новых рельсов. 4. Если я не ошибаюсь, рельсы 4 устарели всеми методами find_by * и теперь используют метод find_by, который принимает аргументы, как вы видели в примере/руководстве. Похоже, вы случайно взглянули на рельсы 4. это сбивало меня с толку сегодня. – Alan
Для справки: [find_by documentation] (http://api.rubyonrails.org/classes/ActiveRecord/FinderMethods.html#method-i-find_by) –