Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在RubyonRails中更改数据库中的列?_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 如何在RubyonRails中更改数据库中的列?

Ruby on rails 如何在RubyonRails中更改数据库中的列?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我将进入我的ruby控制台 ruby c 然后我输入 rename_column :table_name :old_column :new_column 其中,表名称旧列和新列替换为正确的属性 单击enter后,我收到以下错误: SyntaxError ((irb):1: syntax error, unexpected ':', expecting end-of-input) rename_column :table_name ^:old_column :new_column 您

我将进入我的ruby控制台

ruby c
然后我输入

rename_column :table_name :old_column :new_column
其中,表名称旧列和新列替换为正确的属性

单击enter后,我收到以下错误:

    SyntaxError ((irb):1: syntax error, unexpected ':', expecting end-of-input)
rename_column :table_name ^:old_column :new_column

您缺少一些逗号:

原件:

rename_column :table_name :old_column :new_column
编辑:

rename_column :table_name, :old_column, :new_column

您需要生成一个迁移

rails generate migration ChangeColumnFoo
db/migrate
文件夹中打开该文件,该文件夹显示该文件已创建

def change
行后添加新行,并添加您的重命名:

rename_column :table_name, :old_column, :new_column

保存文件,然后从控制台运行rake db:migrate。

您忘记了逗号:

rename_column :table_name, :old_column, :new_column

为什么不使用迁移呢?正如所指出的,ruby命令的格式可能不正确,但即使格式正确,也没有
main:Object
method
rename\u column
。您不能在控制台中执行此操作。参见杰伊·多尔西(Jay Dorsey)的答案,了解如何进行这种改变。