如何在rails上更改ruby中的db模型?

时间:2015-03-29 19:59:36

标签: ruby-on-rails ruby sqlite

我是ruby on rails的新手。

我已经创建了所有模型和模式,我的数据库也填充了字段。

但是,当我想更改表之间的关联或向表中添加另一个字段时,应该运行什么类型的命令以及以什么顺序运行?

例如:

rake db:drop db:create db:migrate db:seed

我应该首先生成表格模型吗?

1 个答案:

答案 0 :(得分:0)

在您的应用程序中构建新功能时,您需要问问自己这个功能是否需要一张桌子?'。

让我们举一个简单的例子:博客文章应用

博客文章应用通常包含帖子表和作者表。

现在假设你想对你的博文发表评论。要问的第一个问题是,您需要一个评论表,您将保存与每个帖子相关的每个评论。答案是肯定的,你确实需要一个评论表,因为你将把数据保存到数据库中。

命令创建一个新的注释表:

rails generate migration create_comments

db/migration/create_comments.rb

你会看到

class CreateComments < ActiveRecord::Migration

    def change
      create_table :comments do |t|
      end
    end
end

然后,您可以安全地将所需的任何列添加到此表中。

现在使用rake db:migrate

进行迁移

您的架构现在已使用新注释表进行更新。 设置数据库后,接下来需要创建一个注释模型。

class Comment < ActiveRecord::Base

end

您必须制作相应的关联;这是一个至关重要的部分 - 您希望以一种方式设置您的体系结构,使您的应用程序的所有不同部分可以轻松地相互通信。请查看ActiveRecord关联中的documentation

在此部分之后,您需要在config/routes.rb中设置路线并创建评论控制器:

class CommentsController < ApplicationController
    def create
    end
end

设置路线,以便当有人对帖子发表评论时,POST请求将被发送到评论控制器中的创建操作。看一下here了解更多信息。