ruby-on-rails - ruby on rails 在特定列名后添加一列

标签 ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2

我试图在表中的特定列之后向表中添加一列。 这是我所做的:

rails generate migration add_reaction_id_to_patient_allergies reaction_id: integer :after => 'patient_id'

这是我的迁移文件的样子:

class AddReactionIdToPatientAllergies < ActiveRecord::Migration
  def change
    add_column :patient_allergies, :reaction_id, :string
    add_column :patient_allergies, :integer, :string
    add_column :patient_allergies, :, :after
    add_column :patient_allergies, :=, :string
  end
end

我认为命令执行得不顺利。我在上面的文件中看到一个“=”。我认为它不应该在那里。如果我遗漏了什么,有人可以告诉我吗?

如果是,我该如何撤销上面的操作?

最佳答案

我怀疑它是否允许您实际 rake db:migrate 此迁移,因此您不必回滚。只需删除底部的三个 add_column 并将顶部的替换为

add_column :patient_allergies, :reaction_id, :integer, after: :patient_id

迁移应该没问题。为了将来引用,您输入的命令应该如下所示:

rails generate migration add_reaction_id_to_patient_allergies reaction_id:integer

integer 之前的空格让生成器认为这是一个新列。遗憾的是,您也不能在命令行上使用 Ruby 语法 (a => b)。

关于ruby-on-rails - ruby on rails 在特定列名后添加一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15481733/

相关文章:

ruby-on-rails - 在 Rails 中使用 Devise 3. 添加多个角色?

ruby-on-rails-3 - Rails 3 with Devise - 使用 jQuery Mobile 进行未经授权的重定向

ruby-on-rails - Rails Active Record - counter_cache 仅返回给定时间段内的记录

javascript - 使用 Ruby on Rails 检查选择文件时的文件扩展名 'file_field' 并显示错误消息(如果有)

ruby-on-rails - 如何在 factory_girl 工厂中包含模块?

ruby - method= 具有多个参数

ruby - 模块化、基于组件的 Sinatra 应用程序的架构

ruby-on-rails - 在 Rails 应用程序中生成所有电子邮件的样本版本

ruby - 按 T​​AB 键,然后在带有 Ruby 的 Selenium WebDriver 中按 ENTER 键

ruby-on-rails-3 - capybara 歧义解析