在RoR
,當我運行例如下面的命令:回報率 - 模型與數據庫
> rails generate model xyz
而且,如果我去,例如12345_create_xyzs.rb
,我會找到一些與此類似:
def self.up
create_table :xyzs do |t|
那麼,當我發了一個model
,我實際上是在製作一個表?
但是,哪裏是數據庫?!
在RoR
,當我運行例如下面的命令:回報率 - 模型與數據庫
> rails generate model xyz
而且,如果我去,例如12345_create_xyzs.rb
,我會找到一些與此類似:
def self.up
create_table :xyzs do |t|
那麼,當我發了一個model
,我實際上是在製作一個表?
但是,哪裏是數據庫?!
您必須運行命令rake db:migrate
才能遷移數據庫。命令rake db:create
創建數據庫...
更多信息可用here。
此外,數據庫必須配置到位於這裏的文件:
<your_project>/config/database.yml
更多信息here。 更一般地說,我認爲你應該閱讀「getting started」。
當您使用rails generate model zyz
時,您告訴Rails爲您生成多個文件。文件12345_create_xyzs.rb
就是所謂的遷移 - 它包含使用與您的模型關聯的表結構填充數據庫的說明。
但是,您確實需要確保DB存在(例如在MySql CREATE DATABASE MyDB
中),並且您的database.yml
文件具有與該數據庫正確的連接信息。
如果這是真的,當您運行rake db:migrate
時,rake任務將負責將模型結構遷移到數據庫。
當您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
文件。在這個類中,您可以像指定模型之間的關係一樣,添加您需要的約束和其他代碼。
我認爲'def Xyz
Simplicity
正確!修正了錯字。 – Zabba