【发布时间】:2020-02-06 05:57:34
【问题描述】:
我需要进行迁移,将一列添加到三个单独的表中。视图列是一个整数,还需要默认 => 0。如何使用 activerecord 命令添加这些列?我正在使用 postgreSQL 数据库。
我的迁移应该是这样的:
class AddViewsToRestaurantsMenusDishes < ActiveRecord::Migration[6.0]
def change
add_column Restaurant, :views, :integer, :default => 0
add_column Menu, :views, :integer, :default => 0
add_column Dish, :views, :integer, :default => 0
end
end
【问题讨论】:
-
the guide 有什么不清楚的地方?
-
我找不到它说如何为多个表添加列以及如何设置默认值 => 0
-
你试过
add_column :restaurants, :views, :integer, default: 0吗?重复两次,将:restaurants更改为:menus和:dishes? -
该命令不正确。我在某个地方看到迁移使用模型名称作为第一个参数,这也让我觉得很奇怪。
-
"add_column :restaurants, :views, :integer, default: 0" 进行空迁移。正确的方法是“AddViewsToTeams 视图:整数”。但这并不像上面的例子那样模型是第一个参数。在 views:integer 之后添加 default:0 只是使其成为另一列而不是使视图成为默认值 => 0
标签: ruby-on-rails database postgresql activerecord rails-activerecord