我目前正在项目中进行两次ActiveRecord迁移,我想将WhRuleAttributes表的一列中的值分配给WhRule表中的一列。
CreateWhRules迁移
class CreateWhRules < McflyMigration
include Marty::Migrations
def change
table_name = "apollo_wh_rules"
create_table table_name do |t|
t.string :name, null: false
t.pg_enum :rule_type, null: false, index: true
t.text :expression, null: true
t.datetime :start_dt, null: false, default: DateTime.now
t.datetime :end_dt, null: true
t.jsonb :simple_guards, null: false, default: {}
t.json :computed_guards, null: false, default: {}
t.jsonb :grids, null: false, default: {}
t.json :results, null: false, default: {}
t.jsonb :fixed_results, null: false, default: {}
end
end
end
CreateWhRuleAttributes迁移
class CreateWhRuleAttributes < ActiveRecord::Migration[5.1]
include Apollo::Migrations
def change
table_name = :apollo_wh_rule_attributes
create_table table_name do |t|
t.references :wh_rule, null: false
t.pg_enum :warehouse_line_type, null: true
end
add_fk table_name, :wh_rules
end
end
因此,在我的WhRuleAttributes表中,我有对wh_rule_id的引用,其中有多个对同一规则的引用,而所有规则都具有不同的Warehouse_line_type。我现在想做的是在我的WhRule迁移中,将每行中的simple_guards的值设置为其他表中该规则id引用的ALL Warehouse_line_types。
做到这一点的最佳方法是什么?谢谢您的帮助。