2011-08-06 24 views
1

RoR,當我運行例如下面的命令:回報率 - 模型與數據庫

> rails generate model xyz

而且,如果我去,例如12345_create_xyzs.rb,我會找到一些與此類似:

def self.up 
    create_table :xyzs do |t| 

那麼,當我發了一個model,我實際上是在製作一個

但是,哪裏是數據庫?!

回答

1

您必須運行命令rake db:migrate才能遷移數據庫。命令rake db:create創建數據庫...

更多信息可用here

此外,數據庫必須配置到位於這裏的文件:

<your_project>/config/database.yml 

更多信息here。 更一般地說,我認爲你應該閱讀「getting started」。

2

當您使用rails generate model zyz時,您告訴Rails爲您生成多個文件。文件12345_create_xyzs.rb就是所謂的遷移 - 它包含使用與您的模型關聯的表結構填充數據庫的說明。

但是,您確實需要確保DB存在(例如在MySql CREATE DATABASE MyDB中),並且您的database.yml文件具有與該數據庫正確的連接信息。

如果這是真的,當您運行rake db:migrate時,ra​​ke任務將負責將模型結構遷移到數據庫。

2

當您rails generate model xyz時,您將指定表xyz將在數據庫中具有的字段(以及其他所需的數據庫索引)。該表格代表數據庫中的類別

要在數據庫中創建該表,您需要使用rake db:migrate來遷移模型定義文件(12345_create_xyzs.rb)。

該模型是在鐵軌(即ActiveRecord的)碼作爲一類表示的,在一個文件名爲app/models/xyz.rb

class Xyz < ActiveRecord::Base 
    ... 
end 

您除了上述由rails generate model創建的遷移文件創建app/models/xyz.rb文件。在這個類中,您可以像指定模型之間的關係一樣,添加您需要的約束和其他代碼。

+0

我認爲'def Xyz Simplicity

+0

正確!修正了錯字。 – Zabba