我正在尝试编写迁移,它看起来像这样:
class AddStatusToWorks < ActiveRecord::Migration
def self.up
change_table :works do |t|
t.string :status
end
end
def self.down
change_table :works do |t|
t.remove :status
end
end
end
问题是,我想根据表中已经存在的布尔值“完成”为“状态”设置不同的默认值。如果完成 = true,则状态 =“完成”。如果没有,status = "work in progress." (我想要一个字符串而不是作为布尔值保持完整的原因是因为我希望那里能够有两个以上的状态可能性。)知道怎么做吗?我是否像这样在其中粘贴一个 if 语句
change_table :works do |t|
t.string :status
if (:complete == true)
:value => "complete"
else
:value => "wip"
end
呃,所以看起来不太对劲。我用谷歌搜索了一下,发现你可以设置 :default 值,但这并不是我想要的。任何想法/帮助都会很可爱。谢谢!