Ruby on Rails Michael Hartl第2章:Micropost迁移

时间:2013-07-11 19:33:51

标签: ruby-on-rails-3 rake migrate

我是编程新手,并通过Hartl的Ruby on Rails教程并坚持2.3.1节。

我需要为Micropost资源创建一个新的脚手架,并将新的数据模型迁移到数据库中。

我使用以下方法成功创建了一个新的脚手架:

$ rails generate scaffold Micropost content:string user_id:integer

作为回报,我看到了:

$ rails generate scaffold Micropost content:string user_id:integer
  invoke  active_record
  create    db/migrate/20130711181712_create_microposts.rb
  create    app/models/micropost.rb
  invoke    test_unit
  create      test/unit/micropost_test.rb
  create      test/fixtures/microposts.yml
  invoke  resource_route
   route    resources :microposts
  invoke  scaffold_controller
  create    app/controllers/microposts_controller.rb
  invoke    erb
  create      app/views/microposts
  create      app/views/microposts/index.html.erb
  create      app/views/microposts/edit.html.erb
  create      app/views/microposts/show.html.erb
  create      app/views/microposts/new.html.erb
  create      app/views/microposts/_form.html.erb
  invoke    test_unit
  create      test/functional/microposts_controller_test.rb
  invoke    helper
  create      app/helpers/microposts_helper.rb
  invoke      test_unit
  create        test/unit/helpers/microposts_helper_test.rb
  invoke  assets
  invoke    coffee
  create      app/assets/javascripts/microposts.js.coffee
  invoke    scss
  create      app/assets/stylesheets/microposts.css.scss
  invoke  scss
identical    app/assets/stylesheets/scaffolds.css.scss

当我进入下一步迁移时,我输入:

$ bundle exec rake db:migrate

并看到迁移成功:

==  CreateUsers: migrating ====================================================
-- create_table(:users)
   -> 0.0020s
==  CreateUsers: migrated (0.0020s) ===========================================

==  CreateMicroposts: migrating ===============================================
-- create_table(:microposts)
   -> 0.0030s
==  CreateMicroposts: migrated (0.0030s) ======================================

我运行一个本地主机,看到所有的微博视图都很好,可以创建,更新和删除微博。

现在问题出现在下一步,我需要更改文件夹“app / models / micropost.rb”以使用长度验证。但是,我没有看到models文件夹中列出的“micropost.rb”文件。我只看到上一个练习中的“.gitkeep”和“user.rb”文件。

这让我相信移民并不成功,尽管被告知这一点,我不知道该怎么做。请帮忙。

1 个答案:

答案 0 :(得分:1)

你看过app/models/micropost.rb了吗?生成脚本肯定表明它是在那里创建的。如果没有,这是文件夹中建议的其他文件吗? (例如apps/controllers/micropost_controller.rbapp/views/microposts/new.html.erb)。

如果仍然没有,您可能希望在运行命令rails generate scaffold Micropost content:string user_id:integer之前签出git提交,或者运行rails destroy scaffold Micropost并重新执行该操作。