我正在使用Chapter 2 of the Ruby on Rails Tutorial中的micropost toy_app,而我在cloud9网址上的网站(http://rails-tutorial-[username].c9users.io/microposts/new)并不工作。我已经尝试了很多东西来尝试解决这个问题(例如,ctrl c,启动rails服务器,再次按ctrl c,推送我错过了heroku等可能的更改),但显示的网页在红色和白色"我们很抱歉,但出了点问题"一般错误和蓝色/粉红色花卉"没有应用程序似乎在这里运行! Cloud9无法将您带到您要求的工作区"错误。
在C9开发日志中反复显示这两个错误: 在救援/布局中呈现/usr/local/rvm/gems/ruby-2.2.1/gems/web-console-2.0.0.beta3/lib/action_dispatch/templates/rescues/routing_error.html.erb
和
ActionController :: RoutingError(未初始化的常量MicropostsController)
我已经搜遍了所有人,看起来大多数有路由错误的人都有不同的错误消息,而且因为他们还没有正确定义他们的路线。我对此完全陌生,我无法弄清楚我做错了什么。
以前(当我浏览本教程的第1章时),我的/ users和/ users / new页面有效,但是现在这些URL都不起作用。这是否与C9<> bitbucket<> heroku问题有关,或者它可能与我的实际代码有关? heroku日志没有显示任何有意义的内容。
我的routes.rb文件如下所示: Rails.application.routes.draw做 资源:微博 资源:用户 root' microposts #index' 端
为了它的价值,我在12/25/15开始了教程,这是rails 2.3发布的那天 - 但是我的日志显示我在2.2.1上。我想知道自从我12月25日开始以来的20-30小时内,我在c9上的导轨版本是否已经过时了?由于我使用的是云端IDE,因此无法理解其工作原理。
我是铁杆的新手,并且除了大学的几个班级之外没有做过任何编程 - 任何提示或指示都会受到赞赏。
答案 0 :(得分:0)
重新开始之后,我终于在一小时左右之后弄明白了 - 我有两个问题。第一个是我只在教程中运行2个必要的脚手架命令之一(doh!)。我通过更仔细地阅读c9开发日志发现了这一点,并注意到一行ActionController::RoutingError (No route matches [GET] "/micropost"):
。在这一点上,我意识到我错过了微博应用程序控制器,因为我从未使用第二个脚手架命令创建它:rails generate scaffold Micropost content:text user_id:integer
另一个问题是我没有(并且仍然没有)真正了解rails服务器的工作方式 - 所以我正在进行更改而没有意识到服务器需要主动运行要加载的网站。当我运行rails server -b $IP -p $PORT
命令时,看起来它永远不会完成(例如,在我点击ctrl c之前,我的$启动我的下一个命令提示符永远不会出现)。所以我一直打ctrl c,没有意识到我正在杀死托管网页的服务器。
我现在做的是进行所有更改,然后运行服务器,然后在需要进行更多更改时点击ctrl c。
我在服务器上做错了什么?总的来说它起作用了,但似乎有更好的方法。