Sinatra App路由不能预期

时间:2017-01-18 17:17:43

标签: ruby routes sinatra

我一直在Skillcrush做一个Ruby课程(仍然非常业余)并且遇到了我的代码无效的课程的一部分。

该应用程序使用Sinatra,并且应该在转到views/people/index.erb时显示localhost:9292/people,但它会转到错误页面,当{{1}之后给出错误的扩展名时它应该出现(通常是日期格式,但如果输入任何其他内容,则应该带来错误)。

我不得不在计算机中途切换计算机,所以感觉可能与我的设置有关。我已经使用了他们提供的代码并使用localhost:9292/检查了差异,并且只能在我的diff --brief -r dir1/ dir2/文件中看到一些代码。我使用的是Ruby 2.4,因为2.0之前版本的Ruby存在问题,并且想知道是否会出现这种情况?

我的代码可以看到here

任何人都可以看到任何明显的问题吗?

1 个答案:

答案 0 :(得分:2)

我相信正在发生的事情是Sinatra将您的网址localhost:9292/people与您的索引控制器get '/:birthdate'的第一条路线匹配,而不是get '/people'。 Sinatra接受请求,然后按顺序检查每个路由,第一个匹配然后处理请求。

测试一下:

  • 尝试将get '/:birthdate'更改为get '/birthdate/:birthdate'(如果有效,则必须更改生日的任何链接)。

  • 评论出生日期路线

  • 将所有路径移动到同一个文件中并更改它们的排列顺序,以了解模式匹配的发生方式。