RoR - 模型与数据库

时间:2011-08-06 18:57:30

标签: ruby-on-rails database model

RoR中,当我运行以下命令时,例如:

> rails generate model xyz

而且,如果我去例如12345_create_xyzs.rb,我会发现类似的内容:

def self.up
    create_table :xyzs do |t|

所以,当我制作model时,我实际上是在制作吗?

但是,数据库在哪里?!

3 个答案:

答案 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”。