【问题标题】:Ruby on Rails newbie: how to get decent error reporting?Ruby on Rails 新手:如何获得体面的错误报告?
【发布时间】:2010-12-18 22:58:50
【问题描述】:

所以今天我第一次使用“Rails for PHP 开发人员”一书与 RoR 合作。我正在按照那里的教程进行操作。

我创建了一个项目,有一个模型Subscriber 和一个控制器Subscribers,它有一个方法create。然后我运行 ruby script/server 来启动 Mongrel。

现在,这本书说如果我转到http://localhost:3000/subscribers/create,我应该会收到一个错误,因为(还)没有与此操作相关联的模板。这本书显示了这个错误信息:

模板丢失
视图路径 /Users/derek/work/newsletter/app/views 中缺少模板订阅者/create.html.erb

一个很好的描述性错误消息,真的很有帮助。但我得到的错误是:

很抱歉,出了点问题。
我们已收到有关此问题的通知,我们会尽快查看。

这个错误根本没有帮助。我怀疑这与本书使用 WEBrick 而我使用 Mongrel 的事实有关。但我认为应该有可能得到更多的描述性错误,对吧?用这样的错误进行开发似乎很痛苦。

【问题讨论】:

  • "如何获得体面的错误报告?"如何?输入体面的错误!? :-)

标签: ruby-on-rails ruby mongrel webrick


【解决方案1】:

看起来您的某些 Rails 安装是半无聊的。您可能缺少 mysql gem 或未正确配置 mysql ActiveRecord 适配器。

使用 gem list 查看已安装的 gems

$ sudo gem list

您可以使用 gem install 命令来安装或更新 gems

$ sudo gem install rails mysql

您通常希望使用 sudo(以 root 身份)安装 gem,以便所有用户都可以使用它们(如 apache 或 www-data)

很抱歉,您对 Rails 的第一次尝试并不顺利,相信我,它是一个非常强大的框架。加油!

【讨论】:

  • mysql gem 确实没有正确安装。我在这里找到了一个关于如何解决这个问题的优秀教程:techliberty.blogspot.com/2009/12/…
  • 注意:最新版本的 rails 是 3 的东西,你的书可能使用 2.3.5 或附近。有很大的差异。使用 $ sudo gem install rails -v=2.3.5 安装您可能想要卸载的任何版本的特定版本,以防万一 $ sudo gem uninstall rails 它会给您一个交互式菜单。注意 --no-ri 和 --no-rdoc 标志会让它运行得更快。例如sudo gem install rails --no-ri --no-rdoc
【解决方案2】:

您可能忘记设置数据库了。您可以查看 log/development.log 了解更多详细信息。

【讨论】:

  • 我已经建立了数据库。开发日志是这样写的:Status: 500 Internal Server Error uninitialized constant MysqlCompat::MysqlRes
  • 当你运行 rake db:migrate 时会发生什么?
  • rake aborted! uninitialized constant MysqlCompat::MysqlRes (See full trace by running task with --trace)
【解决方案3】:

如果您在开发模式下运行,您只会收到第一条消息。

【讨论】:

  • 如何进入开发模式?
  • 我想我已经处于开发模式,因为我在 development.log 中收到消息,但在 test.log 和 production.log 中没有收到消息
  • 脚本/服务器默认为开发。 rails 3 约定是 rails server 但做同样的事情。你的书可能教 Rails 2.3.x
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-02
  • 1970-01-01
  • 1970-01-01
  • 2013-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多