3

可惜一开始就迷路了。使用官方指南http://www.padrinorb.com/创建了第一个 test_app

当尝试“padrino start”应用程序启动时,服务器在控制台中运行良好,但一旦我尝试在 borwser 中查看它,就会出现此错误消息:

/admin/ 未定义方法“匹配?”处的 NoMethodError 对于 nil:NilClass 文件:routing.rb 位置:路由行:66

我也看不到图标,控制台说它找不到。

(尝试使用 Thin 和 Webrick。我正在使用带有 RVM Ruby1.9 Gem 1.3.7 Rails3 的 Ubuntu。更新了 Sinatra 和 Padrino gem,进行了清理。)

非常感谢, gezope

4

2 回答 2

6

更好的解决方案可能是将您正在使用的 sinatra 版本固定到与 sinatra 0.9.19 兼容的版本。Sinatra 1.1.0 对我来说很好用。为此,请将此行添加到您的 Gemfile:

gem 'sinatra', '1.1.0'

并打电话

bundle update

不过,您bundle exec padrino将从那里开始使用。

于 2010-12-27T22:15:31.760 回答
1

这是一个可以解决它的快速破解。它可能应该在框架中解决,但至少您可以立即解决它,以便您可以继续工作:

在我的系统上,我修改了以下文件(假设您使用的是捆绑程序)(注意:当您单击 Padrino 生成的错误页面顶部的“扩展”时,列出了文件的完整路径):文件:.bundle /ruby/1.8/gems/padrino-core-0.9.19/lib/padrino-core/application/routing.rb

原始(这将失败)代码:

   def route
      match.matched? ? match.path.route : nil  # NOTE: this is line 66 in routing.rb
    end

新代码(hacky,但它可以工作,大约需要一分钟)

   def route
      (!match.nil? && match.matched?) ? match.path.route : nil
    end

祝你好运!

于 2010-12-27T20:56:18.823 回答