2010-03-17 3 views
1

Я пытаюсь выяснить, откуда эта функция. У кого-нибудь есть ключ? Она используется следующим образом:find_or_create_by_facebook_id метод не найден

http://github.com/fluidtickets/facebooker-authlogic-bridge

с рабочим пример здесь:

http://facebooker-authlogic-bridge.heroku.com

Загрузка кода, он бросает: undefined method 'find_or_create_by_facebook_id' for #<Class:0xb04dd1c>

Я понятия не имею, где эта функция исходит из ,

Спасибо всем!

ответ

2

ActiveRecord создает динамические поисковики на основе столбцов в вашей базе данных. Так, например, если у вас есть пользователь с атрибутом имени пользователя, то ActiveRecord создает ряд динамических искателей:

find_by_username 
find_or_initialize_by_username #=> calls new if not found 
find_or_create_by_username #=> calls create if not found 

Вы можете строку несколько атрибутов вместе, как

find_by_username_and_email 

Чтобы вернуться к вашей проблеме - Я подозреваю, что вы не выполнили требуемую миграцию, которая добавляет facebook_id в таблицу ваших пользователей в db, и поэтому ActiveRecord не добавляет динамический искатель для facebook_id в класс.

+0

У меня такая же проблема с facebook_id, которая не добавляется в db. Я запустил bundle exec rake db: migrate и имею 2 базы данных. Я также использую SQLite. Может быть, это и есть причина? Я либо получил ошибку, упомянутую выше, либо: «У вас есть нулевой объект, когда вы этого не ожидали! Возможно, вы ожидали экземпляр массива. Ошибка при оценке nil. [] '... , когда я немного меняю код, что, я думаю, означает, что мой массив информации пуст. Я думаю, это сужает меня до этих рассуждений. – Tony

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