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

时间:2011-10-19 20:07:10

标签: database ruby-on-rails-3 scaffolding

我开始在Ruby on Rails这个毛茸茸的世界里开始,我正试图绕过脚手架和模型。 (提示,我是设计师)

我使用rails generate scaffold命令

rails generate scaffold Lesson title:string description:text

但是可以使用新的键更新Lesson表,使用rails吗?

我试过了:

rails generate model Lesson title:string description:text dtstart:datetime

但是当我运行db:migrate时它失败了,我知道这样做的唯一方法就是删除所有的脚手架并重新生成它。

我确信必须有一个更简单的解决方案:)

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

2 个答案:

答案 0 :(得分:5)

我认为没有办法实现您所描述的内容 - 通常如果您想要向模型添加新字段,您希望生成迁移:

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 /中)

答案 1 :(得分:0)

我认为您还必须更新(至少在rails 5中)您在lesson_controller.rb中的lesson_params,以便允许新参数从视图传递到模型。