Rails - миграция данных и стоимость в БД - PullRequest
0 голосов
/ 18 декабря 2009

У меня есть вопрос о том, откуда берутся значения в выпадающих списках:

У меня есть миграция, которая устанавливает исходную таблицу с некоторыми начальными значениями:

add_column :contracts, :signature_status_id, :integer

# lookup data
sig = SignatureStatus.new(:name => "Delivered")
sig.save!
sig = SignatureStatus.new(:name => "Signed")
sig.save!

У меня есть таблица signature_statuses, которая содержит обновленные значения:

id, name
1, 'Delivered; awaiting signature'
2, 'Delivered; awaiting full execution'
3, 'Terms being negotiated'
4, 'Fully executed and filed'

У меня есть форма, содержащая код для извлечения статуса подписи:

<%= collection_select(:contract, :signature_status_id, @signature_statuses, :id, :name) %>

Выбор коллекции включает «Подписано» и «Доставлено», когда я хочу, чтобы это было из БД. Как мне это сделать?

Примечание: я думаю, что данные редактировались вручную, а не миграцией, но я не уверен. Я также искал код «подписан» и «доставлен», но единственное место, где он отображается, - это миграция.

Ответы [ 4 ]

0 голосов
/ 05 января 2010

Оказывается, мне нужно было запустить "rake db", и это все исправило.

0 голосов
/ 18 декабря 2009

Хммм, это немного странно, но я подозреваю следующее: внутри вашей signature_status модели может быть метод с именем name, который переопределяет стандартную и возвращает yes и no.

0 голосов
/ 18 декабря 2009

Ключ к отладке - посмотреть, где

 @signature_statuses

устанавливается в контроллере. Если он извлекает из базы данных, то это то, что находится в базе данных. Интересно, задействовано ли больше одной базы данных, когда ваша миграция обновила базу данных разработки, но вы выполняете запрос к рабочей (или что-то в этом роде).

0 голосов
/ 18 декабря 2009

Мне просто интересно, как вы получаете этот список значений в таблице signature_statuses? Вы запрашиваете свою базу данных разработки? Ваше приложение работает в режиме разработки? Правильно ли настроен файл database.yml, чтобы он указывал на вашу базу данных разработки?

Также вы можете разместить код контроллера, который заполняет переменную @signature_statuses.

Немного больше информации, и я уверен, что люди смогут помочь.

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