我是编程新手,并通过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”文件。
这让我相信移民并不成功,尽管被告知这一点,我不知道该怎么做。请帮忙。
答案 0 :(得分:1)
你看过app/models/micropost.rb
了吗?生成脚本肯定表明它是在那里创建的。如果没有,这是文件夹中建议的其他文件吗? (例如apps/controllers/micropost_controller.rb
,app/views/microposts/new.html.erb
)。
如果仍然没有,您可能希望在运行命令rails generate scaffold Micropost content:string user_id:integer
之前签出git提交,或者运行rails destroy scaffold Micropost
并重新执行该操作。