【问题标题】:Populate field in db with another field用另一个字段填充数据库中的字段
【发布时间】:2016-12-22 17:03:48
【问题描述】:

我有表“产品”并希望用另一列的数据填充一列,即:Product.first.product_id == Product.first.barcode。 目前在product_idbarcode 中保留条形码为零。

编辑:我想使用 Product.product_id 中的现有数据填充所有产品条形码。

我一直在尝试用谷歌搜索,但仍然不知道应该如何迁移数据。感谢您的帮助!

编辑:我使用 PostgreSQL。

【问题讨论】:

  • 您使用的是哪个数据库?
  • @NarasimhaReddy postgresql

标签: ruby-on-rails ruby database postgresql ruby-on-rails-4


【解决方案1】:

您可以使用ActiveRecord::Relation#update_all 来更新数据库中的现有记录。这可以从 Rails 控制台或使用Custom rake task 执行。

Product.update_all("barcode = product_id")

对于未来的记录,使用回调。在product.rb中

before_save :update_barcode

def update_barcode
  self.barcode = self.product_id
end

【讨论】:

  • 你不需要self
【解决方案2】:

也许这会有所帮助:

update Productsset set product_id=barcode

它基于 SQL。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-09-27
    • 2019-06-12
    • 2021-10-05
    • 2010-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多