如何在另一列更改时保存和更新一列

时间:2017-06-19 20:36:56

标签: sql ruby-on-rails ruby

我有一个text类型的数据库列,用于在我的数据库中存储哈希。

column_a = {sample_list: [{email: test@gmail.com},{email: test2@gmail.com}]}

我想在数据库中生成另一列,其中包含一串email_address,例如:

column_B = "test@gmail.com,test2@gmail.com"

我知道如何从哈希生成字符串,我的问题是我必须进行哪些模型更改,以便在填充column_A时,column_B应该更新?

在这种情况下,如何处理历史数据的迁移?

1 个答案:

答案 0 :(得分:1)

('x', 'y')

然后(在您确定可以安全地进行更新的时候)在控制台中运行它。找到每个将批量处理数据。

class ClassName < ApplicationRecord
  before_save :maybe_update_column_b

  def maybe_update_column_b
    update_column_b if column_a_changed?
  end

  def update_column_b
    #your code to update column b
  end
end