2013-12-10 148 views
1

早安男士。混亂的軌道模型和遷移

我真的需要你的幫助。有誰能給我一個關於模型和遷移之間關係的解釋。 我還是不明白。或者可能是你可以給我一個好文章的鏈接。

非常感謝您 ,我很抱歉,我的英語

+0

這裏你去: http://guides.rubyonrails.org/migrations.html –

回答

2

讓我們先了解一下Active RecordsHere是很好的解釋。

Rails Active Records提供了關係數據庫中的表與處理數據庫記錄的Ruby程序代碼之間的接口和綁定。實際上這個活動記錄文件是指模型!

而Rails Migration允許您使用Ruby來定義對數據庫模式的更改,從而可以使用版本控制系統使事物與實際代碼保持同步。 瞭解更多here.

這很簡單而有趣,對嗎? :)

+0

謝謝你rony36。讓我再問一個問題。如果我運行這個命令「rails generate model Product」,它會創建Products表,不是嗎? 如果我運行這個命令「rails generate migration CreateProducts」它會創建一個名爲Product的模型嗎? –

+0

不,當你運行'rails generate model Product'時,它會生成一個模型和一個遷移文件。在這個遷移文件中,您需要定義Products表。然後如果你運行'rake db:migrate',它會生成「Products」表。除了rails生成遷移CreateProducts'只創建遷移文件。 – rony36

+0

謝謝你rony36。這真的很愚蠢的問題?如果我們只運行「rails generate migration」命令而不運行「rails generate Model」命令,那麼它是否正常? –

1

模型是類代表你的對象(人,運動,用戶等) 的遷移是一個文件包含的說明該模型的數據庫表。 當你執行rake db:migrate它會採用遷移文件並生成數據庫表。 這guide是有點長,但你有所有需要知道。

1

該模型可以被看作一個普通的舊關係數據庫。爲了創建這樣的數據庫,您必須創建一個遷移文件,以指定要創建的表名和表列。要實際使更改生效,您必須運行rails遷移。有時遷徙會非常有益。您可以回滾您所做的更改以撤銷它們。在遷移過程中,您應該指定如何撤消更改(除非使用更改方法,但不能用於所有內容)。

+0

可能更好地推斷模型基本上是一個數據庫表中的基礎記錄結構的表示。可以修改該表示(不表示記錄),以將各種擴展方法添加到模型中,而不更改或影響底層數據存儲。 – railsdog