我正在使用Agile Web Development with Rails來了解Rails。在早期的一章中,作者創建了腳手架,然後開始着眼於遷移。在他的遷移中,有一個「上」和「下」的方法,而我的遷移中只有一個「變化」的方法。作者正在使用Rails 3.05(或類似的東西),我使用3.1,但是,我不認爲這是解釋,因爲使用另一本書,但相同版本的Rails我記得創建了一個遷移,具有「向上」和「向下」的方法...Rails遷移中的方法名稱
於是,兩個問題,
一)有什麼原因,我在我的移民不同的方法名稱?
b)是否會影響功能?
我的移民
class CreateProducts < ActiveRecord::Migration
def change
create_table :products do |t|
t.string : title
t.text :description
t.string :image_url
t.decimal :price, :precision => 8, :scale => 2
t.timestamps
end
end
end
書籍遷移
class CreateProducts < ActiveRecord::Migration
def self.up
create_table :products do |t|
t.string :title
t.text :description
t.string :image_url
t.decimal :price, :precision => 8, :scale => 2
t.timestamps
end
end
def self.down
drop_table :products
end
end
這不是正確的說,3.1 「廢除了」'up'和'down'。它們仍然非常有效,對於許多遷移仍然是必要的。 –
o.k.,非常感謝..我確信我之前創建了一個使用「up」和「down」的3.1遷移 – Leahcim
好點的Jordan。就像Rails的許多更新一樣,老式的做事方式仍然可以正常運行(在您的控制檯中可能會出現一些折舊警告),並且您「正確地認爲」是一個糟糕的選擇。我應該說一些類似於「引入了一種叫做'change'的新方法,它被用於3.0.x中使用的'up'和'down'方法。」 – backwardm