Database Rails 3:更新数据库和脚手架

Database Rails 3:更新数据库和脚手架,database,ruby-on-rails-3,scaffolding,Database,Ruby On Rails 3,Scaffolding,我开始在Ruby on Rails这个巨大的毛茸茸的世界里工作,我试着让我的头脑围绕着脚手架和模型。cue,我是个设计师 我使用rails生成scaffold命令 rails generate scaffold Lesson title:string description:text 但是,是否可以使用新的键、值和rails更新课程表 我试过: rails generate model Lesson title:string description:text dtstart:datetime

我开始在Ruby on Rails这个巨大的毛茸茸的世界里工作,我试着让我的头脑围绕着脚手架和模型。cue,我是个设计师

我使用rails生成scaffold命令

rails generate scaffold Lesson title:string description:text
但是,是否可以使用新的键、值和rails更新课程表

我试过:

rails generate model Lesson title:string description:text dtstart:datetime
但是当我运行db:migrate时,它失败了,我知道的唯一方法是删除所有的脚手架并重新生成它

我相信一定有一个更简单的解决方案:


我想,但我不确定,这是因为db/development.sqlite3文件没有更新,当我手动删除内容,然后运行bd:migrate时,有没有办法立即更新所有内容?

我不认为有办法做到您所描述的-通常,如果您想向模型添加新字段,要生成迁移,请执行以下操作:

rails g migration AddStartToLesson
然后打开迁移文件并添加将添加这些字段的代码。它可能会最终看起来像这样:

class AddStartToLesson < ActiveRecord::Migration
  def self.up
    add_column :lessons, :start, :datetime
  end

  def self.down
    remove_column :lessons, :start
  end
end

您必须更新一些视图——可能是_form.html.erb,以获取表单字段来输入数据,并使用index.html.erb和show.html.erb来显示数据。它们可能在app/views/lessons/

中,我认为您还必须在rails 5中更新至少在lessons\u controller.rb中的lesson\u参数,以便允许将新参数从视图传递到模型。

1.3更改迁移有时您在编写迁移时会出错。如果已经运行了迁移,那么就不能编辑迁移并再次运行迁移:Rails认为它已经运行了迁移,因此在运行rake db:migrate时将什么也不做。您必须回滚迁移,例如使用rake db:rollback,编辑迁移,然后运行rake db:migrate以运行正确的版本。@YannickSchall很好。。。在开发过程中,回滚和重写创建模型的迁移通常比编写新的迁移更容易。但是,在开发过程中是否可以修改数据库表的结构,而不必重新生成脚手架?Arg,我是个白痴,我想我对自己的问题做了评论。。。也就是说,删除字段的过程是否相同?只使用self.down编写新迁移?似乎有答案。现在我必须尝试: