2012-03-13 4 views
0

Итак, я сделал отдельный файл миграции, чтобы изменить имя столбца в моей таблице базы данных. Проблема в том, что когда я пытаюсь перейти на страницу со своей таблицей, я получаю неопределенную ошибку метода в имени столбца, которое я пытался изменить.Изменение столбцов в рельсах

Мой профессор сказал мне, что мне нужно изменить представление/контроллер до того, как столбцы будут работать, но я не могу узнать, что мне нужно делать. Любая помощь/предложения?

Путь я меняю столбцы, как это:

class FixColumnName < ActiveRecord::Migration 
def change 
rename_column :suppliers, :sName, :"first_name" 
add_column :suppliers, :"last_name" 
remove_column :suppliers, :Snum 
remove_column :parts, :Ptnum 
end 
end 

error message in browser

+0

Вы запустили rake db: migrate? – Rahul

+0

Пожалуйста, сообщите ваше сообщение об ошибке. – iblue

+0

да, я мигрирую, а затем получаю сообщение об ошибке. – cj1098

ответ

2

Если вы chaned имя столбца базы данных, то вам также необходимо изменить название связанного атрибута модели в коде приложения.

То есть, если у вас ранее был @supplier.sName (или аналогичный), вам понадобится @supplier.first_name (или что-то подобное - с использованием новых имен столбцов).

+0

Я совершенно новый для рельсов. Когда вы говорите связанный атрибут модели, где именно вы меня направляете? В каталоге моделей? – cj1098

+0

никогда не бывало. Это было так просто: p – cj1098

1

sNum больше не существует.

удалить

<%= @supplier.sNumb %> 

вы поменяете

<%= @supplier.sName %> 

в

<%= @supplier.first_name %> 

вы также хотите добавить

<%= @supplier.last_name %> 
+0

, когда я удаляю @ поставщик.sNum Затем он дает мне ошибку undefined method sName. – cj1098

+0

, потому что вы изменили имя sName на change_name, как указано выше –

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