如何在现有表的特定位置的rails迁移中添加列?

时间:2018-03-24 17:24:35

标签: ruby-on-rails ruby-on-rails-5

我查看了这些答案,但它们似乎不起作用:

我检查了API documentation,在找到之前:或之后找不到第一个:的引用。

是否可以在Rails 5中的现有表上的特定位置添加列?我似乎无法让它发挥作用。

编辑:这是迁移脚本

class CreatePrivileges < ActiveRecord::Migration[5.1]
    def change
      create_table :privileges do |t|
        t.boolean :no_site_access
        t.boolean :edit_schedule

        t.timestamps
      end
    end
  end
class AddUserIdToPrivileges < ActiveRecord::Migration[5.1]
    def change
      add_column :privileges, :user_id, :integer, first: true
      add_index :privileges, :user_id
    end
end

db / schema.rb

ActiveRecord::Schema.define(version: 20180324160753) do

      create_table "privileges", force: :cascade do |t| 
        t.boolean "no_site_access"
        t.boolean "edit_schedule"
        t.datetime "created_at", null: false
        t.datetime "updated_at", null: false
        t.integer "user_id"
        t.index ["user_id"], name: "index_privileges_on_user_id"
      end 
    end 

我知道我可以将user_id移动到架构中列表的顶部,或者只是重新生成首先列出它的生成器,但我正在尝试学习,我想知道是否有办法通过迁移执行此操作。

1 个答案:

答案 0 :(得分:0)

您可以使用<table ng-repeat="dept in deptData" st-set-filter="customFilter" st-table="printAsTableDataDisplay" st-safe-src="deptData" class="table table-striped"> <thead> <th> <select st-search="violationName"> <option value="">All</option> <option ng-repeat="row.violationName for row in deptData | unique:'violationName'" value="{{row.violationName}}">{{row.violationName}}</option> </select> </th> </thead> </table>

after: :a_field