当尝试“padrino start”应用程序启动时,服务器在控制台中运行良好,但是当我尝试在borwser中看到它时会出现以下错误消息:
/ admin /的NoMethodError 未定义的方法`匹配?'为零:NilClass file:routing.rb location:route line:66
此外,我看不到favicon,而控制台说它无法找到它。
(尝试使用Thin和Webrick。 我正在使用Ubuntu和RVM Ruby1.9 Gem 1.3.7 Rails3。 更新了Sinatra和Padrino宝石,进行了清理。)
非常感谢, gezope
答案 0 :(得分:6)
更好的解决方案可能是将您正在使用的sinatra版本固定到与sinatra 0.9.19兼容的版本上。 Sinatra 1.1.0对我来说很好。为此,请将此行添加到您的Gemfile:
gem 'sinatra', '1.1.0'
并致电
bundle update
你可以从那里使用bundle exec padrino
。
答案 1 :(得分:1)
这是一个可以解决它的快速黑客攻击。它应该可以在框架中解决,但至少你现在可以解决它,以便你可以继续工作:
在我的系统上,我修改了以下文件(假设您正在使用bundler)(注意:当您单击Padrino生成的错误页面顶部的“展开”时,列出了文件的完整路径): file:.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
祝你好运!