【问题标题】:Broke Rails application by generating a scaffold with name Controller通过生成名为 Controller 的脚手架来破坏 Rails 应用程序
【发布时间】:2012-06-25 00:33:25
【问题描述】:

自学 Rails 并遇到以下问题,我似乎找不到任何相关信息。

我似乎通过生成一个名为“Controller”的脚手架破坏了我的 Rails 应用程序。该应用程序会跟踪硬件控制器,因此我想创建一个脚手架和数据库来保存有关存储的硬件控制器的所有信息。

我运行了以下内容:

rails generate scaffold Controller manufacturer:references model:string controller_type:references

我运行rake db:migrate 并重新加载了应用程序网站的根路径(它不使用Controller,但使用了其他几个以前工作正常的模型)并得到以下错误页面:

路由错误

没有路由匹配 {:action=>"show", :controller=>"controllers"} 试试 运行 rake 路线以获取有关可用路线的更多信息。

我跑了rails destroy Controller,所有相关的文件夹和文件都不见了,但我仍然收到错误页面。

我是否不小心覆盖了内置控制器名称?提前感谢您对此提供的任何帮助。

【问题讨论】:

  • 发布 route.rb 和 rake routes。您可能不小心编辑了 routes.rb。
  • 使用destory后可能需要重启服务器?
  • 这发生在我身上,在拔掉头发几个小时后,我重新启动了服务器并修复了它。那是因为你(我)创建了一个名为Controller的脚手架,这当然是不对的。 @JustinD 刚刚报告路线是正确的,即使应用程序不这么认为。

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


【解决方案1】:

该命令可能将此行添加到您的config/routes.rb

 resources :controllers

只需删除该行,重新启动服务器*,然后重试。


* 您不需要重新启动,因为路由会根据请求重新加载,但有时会发生奇怪的事情。

【讨论】:

    【解决方案2】:

    你可以在[rails]/config/routes.rb中设置你的根路由

    root :to => 'welcome#index'

    welcome = controller name

    【讨论】:

      猜你喜欢
      • 2019-07-01
      • 1970-01-01
      • 2013-07-27
      • 1970-01-01
      • 2019-07-21
      • 1970-01-01
      • 1970-01-01
      • 2016-04-06
      • 1970-01-01
      相关资源
      最近更新 更多