在RoR
中,当我运行以下命令时,例如:
> rails generate model xyz
而且,如果我去例如12345_create_xyzs.rb
,我会发现类似的内容:
def self.up
create_table :xyzs do |t|
所以,当我制作model
时,我实际上是在制作表吗?
但是,数据库在哪里?!
答案 0 :(得分:2)
当您使用rails generate model zyz
时,您告诉Rails为您生成多个文件。文件12345_create_xyzs.rb
是所谓的迁移 - 它包含使用与模型关联的表结构填充数据库的说明。
但是,您需要确保数据库存在(例如,在MySql CREATE DATABASE MyDB
中),并且您的database.yml
文件具有与该数据库的正确连接信息。
如果是这样,当您运行rake db:migrate
时,rake任务将负责将模型结构迁移到数据库。
答案 1 :(得分:2)
当您rails generate model xyz
时,您将指定表xyz在数据库中将具有的字段(以及您想要的其他内容,如数据库索引)。该表代表数据库中的模型 class 。
要在数据库中创建该表,您可以使用12345_create_xyzs.rb
迁移模型定义文件(rake db:migrate
)。
模型在Rails(即ActiveRecord)代码中以类的形式表示在一个名为app/models/xyz.rb
的文件中:
class Xyz < ActiveRecord::Base
...
end
除app/models/xyz.rb
上面创建的迁移文件外,您还可以创建rails generate model
文件。在这个类中,您可以使用指定模型之间的关系,添加约束和其他所需的代码。
答案 2 :(得分:1)
您必须运行命令rake db:migrate
才能迁移数据库。命令rake db:create
创建数据库......
提供更多信息here。
此外,必须将数据库配置到位于此处的文件中:
<your_project>/config/database.yml
更多信息here。 更一般地说,我认为你真的应该阅读“getting started”。