這一定很簡單,但它讓我瘋狂!
我有一個移民,我想更新之後Rails不會讓我在遷移過程中更改記錄
class SubjectsTextField < ActiveRecord::Migration
def self.up
add_column :users, :subjects, :text
User.find(39).update_attribute :subjects, "hey there"
end
def self.down
remove_column :users, :subjects
end
end
列被創造了一項紀錄,但是當我去檢查記錄39,它的主題字段爲空,不說「嘿」。遷移過程中不會引發任何錯誤,並且update_attribute行將返回true,就像它已經工作一樣。
此行完全在控制檯和具有預期的效果:
User.find(39).update_attribute :subjects, "hey there"
我試圖把update_attribute線在第二遷移。如果我通過一個「rake db:migrate」一路通過它們到最新,它仍然不起作用。
但是這裏是奇怪的部分。如果我運行兩個單獨的遷移,比如說「rake db:migrate VERSION = 10」,只創建列,然後用「rake db:migrate」更新屬性IT WORKS!
到底發生了什麼......如何在遷移過程中修改記錄?我似乎記得過去經常這樣做。也許它與Rails 2.3.2有所不同?
謝謝! Brian
這是感謝邁克爾!不能相信我從來沒有遇到過......感謝一百萬。 – 2009-06-09 22:29:50