【问题标题】:Ruby on Rails Michael Hartl Chapter 2: Micropost MigrationRuby on Rails Michael Hartl 第 2 章:Micropost 迁移
【发布时间】:2013-07-11 19:33:51
【问题描述】:

我是编程新手,并且正在阅读 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”以使用长度验证。但是,我没有看到模型文件夹中列出的“micropost.rb”文件。我只看到上一个练习中的“.gitkeep”和“user.rb”文件。

这让我相信迁移没有成功,尽管被告知并且我不知道该怎么做。请帮忙。

【问题讨论】:

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


    【解决方案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 并重新执行该操作。

    【讨论】:

    • "app/models/micropost.rb" 不在文件夹中。此外,前面提到的其他文件也根本不存在。我将签出一个较旧的 git commit 并重试该操作。谢谢。
    • 我刚刚恢复到较旧的 git 提交。一切正常,我现在可以在文件夹中找到文件。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2012-06-11
    • 2017-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多