如何重新排序 Rails 应用程序中的 table 列?

How do I re-order table columns in a Rails app?

我在我的 Rails 应用程序中创建了一个模型,一段时间后我意识到我忘记添加一些属性,后来通过生成的迁移添加了它们。

我现在意识到 schema.rb 中属性列的顺序是它们在 ActiveAdmin 中生成的资源视图中出现的顺序。

我想在 ActiveAdmin 中查看该模型时对列重新排序,我想这样做的唯一方法是更改​​数据库中的列顺序。

我查看了 here and here,并尝试使用 change_tablechange_column 运行 数据库迁移。这没有产生任何变化。

这是迁移 I 运行,没有结果:

class Reordercolumn < ActiveRecord::Migration[5.0]
  def up
    change_table :student_details do |t|
      t.change :exact_length, :text, after: :length_of_stay
      t.change :returned_home, :boolean, after: :spouse_name
      t.change :has_spouse, :boolean, after: :expectation
    end
  end
end

为了以特定顺序查看 ActiveAdmin 中的属性列,我 运行 进行了数据库迁移以更改列,但迁移并未对列进行重新排序。

您需要重新排列 ActiveAdmin 中的列?让我们在相应的 admin/student_detail.rb 文件

中进行
index do
  selectable_column
  column :exact_length
  column :returned_home
  column :has_spouse
end

show do
  attributes_table do
    row :title
    row :returned_home
    row :has_spouse
  end
end

有关自定义 index and show 视图的更多信息,您可以在文档中找到