2012-04-21 60 views
0

嗨,我有一個Rails應用程序,它有一個名爲「列表」的表。這張表有一個名爲「城市」的專欄。但該列目前沒有數據,一切都爲空。編號喜歡將字符串:「不可用」添加到此表中所有行的列值。我怎樣才能做到這一點?如何在創建表後在rails應用程序中將值添加到sqlite3開發數據庫中的列

我試過使用sql將它直接添加到數據庫,它不會工作。

所以我想我必須使用rails migration命令來實現這一點。但我找不到確切的命令。我知道它是這樣的......

rails generate migration ?? 

有人能幫我一個忙嗎?

感謝

回答

2

之前告訴你如何真正使用Rails做到這一點,我想請你考慮硬編碼這種表現邏輯到你的數據庫架構。您可以在模型級別執行此操作,並只覆蓋該字段的訪問器。

def city 
    read_attribute("city") || "Not Available" 
end 

將此信息放入數據庫可能會導致問題。例如,您將無法再快速判斷哪些行的默認值爲city

如果你決定要做到這一點,遷移,添加:

change_column :listings, :city, :default => "Not Available" 
+0

非常感謝你的幫助。是的,我在學習rails,這是我的開發環境。當我創建生產模型時,我會遵循您的建議。現在,我只需要這些值來測試依賴於這些值的功能。 – banditKing 2012-04-21 16:14:02

+0

請記住,如果您添加此遷移,您的生產環境的默認值也將爲「不可用」 – jaredonline 2012-04-21 16:27:49

+0

您好。我運行了以下命令進行遷移:「rails generate migration change_column:listings,:city,:default =>」Not Available「。這工作,然後我加了:」rake db:migrate「。它給了我錯誤, 「列表」已經存在,它試圖創建一個名爲「列表」的表,而不是改變現有的表。有什麼建議嗎? – banditKing 2012-04-21 16:51:13

相關問題