0
1.MySQL不支持文本列(所以我不能使用遷移到指定默認值)如何在Rails中爲文本列定義默認列值?
2.默認值,下面的代碼
after_initialize do |obj|
obj.column1 ||= "default_value"
end
是馬車。例如。它將覆蓋顯式指定值以下情況:MyModel.new(column1: nil)
或MyModel.new { |obj| obj.column1 = nil }
所以只有簡單或多或少正確的做法是我能想到的是:
after_initialize do |obj|
obj.column1 ="default_value" if obj.new_record? and !obj.column1_changed?
end
你能提出一個更好的解決方案?
這也是越野車的解決方案。考慮一下情況:MyModel.new(column1:nil)和MyModel.new {| obj | obj.column1 = nil} – Alexey 2012-08-03 16:49:42
對不起。現在我明白你的意思了。通常我不希望用戶設置一個零值,當我想要設置一個默認值。我認爲沒有辦法檢查列是否被明確指定爲零,然後使用'_changed?'方法。 – 2012-08-03 16:57:49