【问题标题】:Routes priority in SinatraSinatra 中的路线优先级
【发布时间】:2014-08-20 00:10:17
【问题描述】:

在我的应用中,我有:

get '/' do
  # stuff
end

带有触发的 erb:

post '/' do
  #code
end

带有链接到 /:id 的 erb,此时应该触发

get '/:id' do
  #code
end

get '/:id' 路由总是被触发,即使我加载主页时也是如此。 我尝试使用通行证但没有满意的结果。难道我做错了什么?

如果您想查看代码(我知道这很糟糕): https://github.com/jackscotti/jobbed/blob/master/jobbed.rb

【问题讨论】:

  • 请发布一些关于这些方法的细节,更重要的是,它们的编写顺序。
  • “但总是被触发”...? 什么总是被触发? (倒数第二段)
  • 每次打开页面时都会加载 get '/:id' 中的代码。即使我只加载主页。
  • 不管我浏览localhost:8600 还是localhost:8600/345345,它总是会加载。如果我只是加载主页,我不希望这种情况发生。

标签: ruby sinatra


【解决方案1】:
get '/:id' do
  #stuff
end

get '/' do
  #stuff
end

post '/' do
  #stuff
end

我相信按此顺序发布代码会优先考虑您的问题。它的路由方式就是方法的编写顺序和HTTP请求的类型(POST、GET、PUT、DELETE、PATCH)

【讨论】:

  • 抱歉,我的问题中忘记了一行文字。请再读一遍。
猜你喜欢
  • 1970-01-01
  • 2011-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-17
  • 2016-06-03
相关资源
最近更新 更多