【发布时间】:2013-05-09 04:09:24
【问题描述】:
我有一个关于在 Rails 迁移中将列的默认值设置为非静态值的问题。
我有一个“用户”表,其中已经包含 id、first_name 和 last_name 列,并且我想添加一个名为“username”的新列,该列默认为用户的姓氏。这是我目前拥有的:
class AddLoginToUsers < ActiveRecord::Migration
def change
add_column :users, :username, :string, :default => :last_name
end
end
显然,这不会产生预期的结果(默认为字符串“last_name”)。如何将默认值设置为行的 last_name 值?
提前致谢。
【问题讨论】:
-
请记住,迁移只是将 SQL 命令发送到您的数据库平台,因此首先您需要了解您希望这些命令是什么。您可以使用触发器或 SQL Server 的计算列来完成您尝试做的事情,但我强烈建议您完全放弃数据库技巧并在应用程序层处理这个问题,就像在@mind.blank 的答案中一样。
标签: ruby-on-rails database migration default