如何将变量添加到数据库默认值

时间:2013-10-16 06:24:51

标签: ruby-on-rails database

我有一个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做到这一点,但我认为将它作为默认值添加到迁移中可能会更快(如果可能的话)(非常确定它不可能,但我想我会问)。

3 个答案:

答案 0 :(得分:0)

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

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

docs中的第一个示例包含一个默认的add_column。

答案 1 :(得分:0)

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

中定义变量
  

配置/初始化

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

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

希望有帮助...

答案 2 :(得分:0)

最好使用before_create call_back来解决此问题

  

before_create:set_default

     

def set_default
        self.message_default =“谢谢#{self.client.name}”
   端

我认为它会用到你的完整吗?