更改轨道中的列

时间:2012-03-13 15:32:04

标签: mysql ruby-on-rails

所以我创建了一个单独的迁移文件来更改数据库表中列的名称。问题是,当我尝试使用表格访问页面时,我试图更改的列名称上出现未定义的方法错误。

我的教授告诉我,我必须更改视图/控制器才能使用列但是我无法找到我必须做的事情..任何帮助/建议?

我改变列的方式是这样的:

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

2 个答案:

答案 0 :(得分:2)

如果您已经查找了数据库列的名称,那么您还需要在应用程序代码中更改关联Model的属性名称。

也就是说,如果您之前有@supplier.sName(或类似),那么您现在需要@supplier.first_name(或类似的东西 - 使用新的列名称)。

答案 1 :(得分:1)

sNum不再存在。

除去

<%= @supplier.sNumb %>

你会改变

<%= @supplier.sName %> 

<%= @supplier.first_name %>

您还需要添加

<%= @supplier.last_name %>