Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在RubyonRails中更改db模型?_Ruby On Rails_Ruby_Sqlite - Fatal编程技术网

Ruby on rails 如何在RubyonRails中更改db模型?

Ruby on rails 如何在RubyonRails中更改db模型?,ruby-on-rails,ruby,sqlite,Ruby On Rails,Ruby,Sqlite,我是RubyonRails新手 我已经创建了所有的模型和模式,我的数据库也填充了它的字段 但是,当我想更改表之间的关联或向表中添加另一个字段时,我应该以什么类型的命令和顺序运行 例如: rake db:drop db:create db:migrate db:seed 我应该先生成表的模型吗?在应用程序中构建新功能时,您需要问自己“此功能是否需要表?” 让我们举一个简单的例子:博客帖子应用程序 博客帖子应用程序通常有一个帖子表和一个作者表 现在让我们假设你想对你的博客文章发表评论。要问的第一个

我是RubyonRails新手

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

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

例如:

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

我应该先生成表的模型吗?

在应用程序中构建新功能时,您需要问自己“此功能是否需要表?”

让我们举一个简单的例子:博客帖子应用程序

博客帖子应用程序通常有一个帖子表和一个作者

现在让我们假设你想对你的博客文章发表评论。要问的第一个问题是,您是否需要一个评论表,以便保存与每个帖子相关联的每个评论。答案是肯定的,您确实需要一个comments表,因为您将把数据持久化到数据库中

用于创建新注释表的命令:

rails生成迁移创建注释

db/migration/create_comments.rb
中,您将看到

class CreateComments < ActiveRecord::Migration

    def change
      create_table :comments do |t|
      end
    end
end
您必须建立适当的关联;这是一个关键的部分——您希望以一种能够使应用程序的所有不同部分都能够轻松地相互通信的方式来设置您的体系结构。看看ActiveRecord上的关联

完成此部分后,您需要在
config/routes.rb
中设置路由,并创建一个注释控制器:

class CommentsController < ApplicationController
    def create
    end
end
class CommentsController
设置路由,以便当有人对帖子发表评论时,帖子请求将发送到评论控制器中的创建操作。查看更多信息

class CommentsController < ApplicationController
    def create
    end
end