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