将记录从一个表列迁移到另一个表列。 (导轨)

时间:2016-02-18 16:11:33

标签: ruby-on-rails migration

我正在开发一个rails项目,我需要从一个表到另一个表中记录一些记录。它有点直接.....但我一直有问题,我希望有人可以帮助我。

基本上我有一个名为research_consent的记录列位于名为state的表中,我需要移动到名为configuration的新表。

research_consentstate表中的字符串,并且仍然是configuration表中的字符串。

下面是我尝试过的迁移。我试图通过research_consent_text的状态,然后将它们移动到配置表中。 (我觉得我过度思考了这一点)

def change
  State.where.not(research_consent_text: ["", nil]).each do |state|
    config = state.research_consent_text
    next if state.research_consent_text.present?
    configuration.update_attributes(research_consent_text: state.research_consent_text)
    config.save
  end
end

如果有人可以快速看一下这个,或者告诉我一个更好的方法来解决这个问题,或者让我陷入困境,让我知道如果有更好的方法,我会非常感谢!

1 个答案:

答案 0 :(得分:0)

我会做这样的事情

def change
  State.where.not(research_consent_text: ["", nil]).each do |state|
    configuration.find_or_create_by(research_consent_text: state.research_consent_text) do |configuration|
      configuration.anything_else
    end
  end
end

您可以在find_or_create_by

上看到更多内容

我希望这会有所帮助。 快乐的黑客