Rails не распознает существующую базу данных - PullRequest
0 голосов
/ 06 января 2012

Я пытаюсь настроить простой CRUD, используя существующую (не сделанную рельсами) базу данных mysql.Я использовал scaffold для настройки необходимых файлов и отредактировал файл '_form', чтобы он соответствовал моей таблице.

Но когда я открываю сайт в браузере и нажимаю "новый", заполняю форму, нажимаю sibmit, я получаю сообщение об ошибке: NoMethodError in ContactsController#create - undefined method name 'для nil: NilClass`

Как будто он не распознает базу данных, верно?И есть подходящая модель, потому что я использовал скаффолд.

Любые предложения?


ОБНОВЛЕНИЕ


Я не могу запустить rake db:migrate или rake db:schema:load, потому чтобаза данных уже существует.

Если я иду в консоль и набираю Contact (имя таблицы, с которой я работаю), она говорит NameError: uninitialized constant Contacts, но если я набираю Contact.new, это говорит #<Contact idContact: nil, name: nil, address: nil, email: nil, phones: nil, investment_advisor: nil>, что означаетон находит таблицу, потому что это столбцы таблицы

1 Ответ

1 голос
/ 06 января 2012

Всякий раз, когда вы получаете blah blah blah ... nil:NilClass, вы ссылаетесь на объект nil, когда ожидаете, что значение не будет равно нулю. Отладка для этого и идти оттуда.

Помимо этого, работа с существующими базами данных должна быть удобной, если вы либо правильно называете свои модели (чтобы они соответствовали именам существующих таблиц, чтобы остальные элементы ActiveRecord работали автоматически), или определяете таблицу имена в моделях в случае, когда существующая база данных не соответствует соглашениям об именах Rails.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...