0

我有一个 rails 应用程序,想在我的数据库中的一个字段中添加一些默认文本。我的架构如下所示:

t.text     "message_default", :default => "Thank you"

但我想在默认值中添加一些变量:

t.text     "message_default", :default => "Thank you Fred"

所以像

t.text     "message_default", :default => "Thank you #{self.client.name}"

我知道我可以使用 call_back 来做到这一点,但我认为将它作为默认值添加到迁移中可能会更快(如果可能的话)(很确定这是不可能的,但我想我会问)。

4

3 回答 3

0

更好的是你可以使用before_createcall_back 来解决这个问题

before_create :set_default

def set_default
self.message_default = "谢谢#{self.client.name}"
end

我想它会为你用完吗?

于 2013-10-16T11:05:22.557 回答
0

当然,您可以为迁移添加默认值:

add_column :table, :call_back, :string, default: 'Thanks - well call you back'

文档中的第一个示例包括默认的 add_column。

于 2013-10-16T06:32:51.580 回答
0

如果要使用变量为迁移添加默认值,则需要在

配置/初始化程序

如果你的变量需要一些逻辑,你也可以在你的特定初始化.rb文件中编写一个动作

通过在初始化程序中定义变量,您可以在迁移文件中访问它。

希望有帮助...

于 2013-10-16T06:34:58.620 回答