Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.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 如何在Rails 5中的现有表中添加新列?_Ruby On Rails_Ruby_Rails Migrations_Ruby On Rails 5 - Fatal编程技术网

Ruby on rails 如何在Rails 5中的现有表中添加新列?

Ruby on rails 如何在Rails 5中的现有表中添加新列?,ruby-on-rails,ruby,rails-migrations,ruby-on-rails-5,Ruby On Rails,Ruby,Rails Migrations,Ruby On Rails 5,我想在Rails 5中的一个表中添加一个新列。我最近使用以下方法重命名了一个列: rails g migration ChangeJobsTable 然后在2016080104312\u change\u jobs\u table.rb: class ChangeJobsTable < ActiveRecord::Migration[5.0] def change rename_column :jobs, :skills, :skills1 end end 它工作得很好

我想在Rails 5中的一个表中添加一个新列。我最近使用以下方法重命名了一个列:

rails g migration ChangeJobsTable
然后在
2016080104312\u change\u jobs\u table.rb

class ChangeJobsTable < ActiveRecord::Migration[5.0]
  def change
    rename_column :jobs, :skills, :skills1
  end
end
它工作得很好,但是现在如果我还想添加一个新列
skills2
,我需要这样做吗

class ChangeJobsTable < ActiveRecord::Migration[5.0]
  def change
    add_column :jobs, :skills2
  end
end
class ChangeJobsTable
您忘记添加
数据类型,下面是更新的迁移

class ChangeJobsTable < ActiveRecord::Migration[5.0]
  def change
    add_column :jobs, :skills2, :string
  end
end
class ChangeJobsTable
您确实忘记了
数据类型。您以后也可以通过控制台执行此操作:


rails g migration AddSkills2ToJobs skills2:string

这对我有效,您可以在模式中进行验证

rails g迁移将技能2添加到变更作业稳定技能2:string


rakedb:migrate

您走上了正确的轨道……走吧,我遇到了这个错误:rails被中止了!StandardError:发生错误,此迁移和所有后续迁移已取消:参数数量错误(给定2个,预期为3..4)是的,只需按照hgsongra(hitesh)指令操作即可。。
class ChangeJobsTable < ActiveRecord::Migration[5.0]
  def change
    add_column :jobs, :skills2, :string
  end
end