我开始在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立即更新?
答案 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,以便允许新参数从视图传递到模型。