2015-09-03 2 views
0

Я новичок в проектировании рельсов и возился с консолью рельсов, чтобы привыкнуть к ней. Когда я пытаюсь найти запись по .find_by_id(), она выдает метод, пропускающий ошибку.Rails 4 - .find_by_id() дает метод пропускания ошибки?

Кажется, что что-то не так с активной записной книжкой, но я побежал gem update, который обновил активную жемчужину и все еще получал ту же ошибку ... Я не уверен, в чем проблема.

Помощь очень ценится !!

NoMethodError: undefined method `find_by_id' for #<Class:0x007fdd03515238> 
     from /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.3/lib/active_record/dynamic_matchers.rb:26:in `method_missing' 
     from (irb):1 
+0

Является ли класс, на котором вы вызываете '.find_by_id', наследуемый от' ActiveRecord :: Base'? – jasonmklug

+0

он должен быть встроенным методом рельсов, вроде 'find()' .. как бы проверить его наследование? – Gcap

+0

Найдите файл для рассматриваемого класса (вероятно, в 'app/models/your_class.rb') и убедитесь, что' class YourClass jasonmklug

ответ

3

Я считаю find_by_id осуждается, а при нахождении на колонке синтаксис теперь find_by(column: value). Для id, я думаю, что метод find - это то, что вы ищете. Model.find(x) должен вернуть запись, где id = x, или ошибка, если она не найдена. Вы все равно можете использовать find_by(id: x).

+1

Верно, но '.find_by_id()' должен по-прежнему работать. Если '.find_by_id()' отсутствует (по какой-либо причине), '.find' также может отсутствовать. – jasonmklug

+1

'find()' возвращает ошибку не nil – Gcap

+0

спасибо, 'find_by' не возвращает ошибку, когда запись не существует, но возвращает 1-ю запись, когда запись не может быть найдена ... [edit]: при правильном использовании 'find_by (" column_name ":" value ")' работает правильно и просто возвращает nil, когда нет записи! – Gcap

0

Метод, который вы ищете, это просто find(id).

+0

'find()' работает, но когда нет записи, он отбрасывает много ошибок, которые могут вызвать проблемы позже в процессе производства, если пользователь ищет запись, которая не существует, поэтому мне нужно 'find_by_id' – Gcap

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

  • Нет связанных вопросов^_^