【问题标题】:how to assign different value to a column for different rows如何为不同行的列分配不同的值
【发布时间】:2011-08-20 01:55:31
【问题描述】:

例如,有如下表:
列_A 列_B 列_C

  1. 我想使用 ruby​​ 迁移添加列 D
  2. 我有一个函数 getColumnDValue(columnC)。该函数可以根据C列的值获取D列的值
  3. 我想根据 C 列的值为 D 列分配不同的值。

这些怎么做????

我检查了 Update_All 和 Update。但是,它们似乎对我的情况没有用。 或者至少,我不知道如何使用这些方法来达到我的目的。

【问题讨论】:

  • 假设您正在使用 Ruby on Rails,我添加了“activerecord”标签。如果这不正确,请澄清。我不明白 'checked the "Update_All" 和 "Update"' 是什么意思;听起来您正在为某些 RDBMS 使用一些 GUI 管理工具?或者您的意思是您已经查看了具有这些名称的方法?如果您需要帮助,您需要提供更多详细信息。

标签: ruby activerecord migration


【解决方案1】:

如果我理解正确,您希望能够以通常的方式设置 d 的值,例如:myobject.d = 5。根据 c 中的值,d 将被保存为正确的值。

这可以通过 before_save 过滤器来完成,您可以在其中为 d 设置一个新值。

你也可以覆盖 d 的 setter 方法:

def d=(value)
  write_attribute(:d, getColumnDValue(value))
end

使用第一种方法,过滤器,您的对象将携带“无效”值,直到保存。如果覆盖 setter,新值将立即写入对象。由您决定哪种方法最适合您。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-21
    相关资源
    最近更新 更多