ruby-on-rails - rails 路由:except question

标签 ruby-on-rails routes except

我正在尝试创建一个简单的博客,其中 posts Controller 路由到根 URL,而不是 localhost/posts/:id。

我将以下内容添加到我的路线文件中...

match '/:id', :to => 'posts#show', :as => 'post'

效果很好。它从此打破了我的搜索路线。

match 'search/:q', :to => 'posts#query', :as => 'search'

看来 Rails 正在尝试查找具有我的搜索查询 ID 的帖子。有没有办法执行类似以下操作,让路由文件假定根 url 之后的所有内容都是帖子 id,除了以“搜索”开头的任何内容?

match '/:id', :to => 'posts#show', :as => 'post', :except => 'search'

最佳答案

Rails 从上到下解析您的路线并在第一个匹配处停止。我会将您的 match '/:id'... 行放在所有其他路线下方。

关于ruby-on-rails - rails 路由:except question,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6245759/

相关文章:

javascript - 更改路由参数时 Angular 重新加载页面

SQL 处理顺序

ruby-on-rails - 如何在 lib 模块中使用 url 助手,并为多个环境设置主机

ruby-on-rails - "pg"Ruby gem 从 Resque 抛出 "prepared statement already exists"错误

ruby-on-rails - 如果 ActiveJob 应该执行的对象被删除,我如何才能阻止它执行?

ruby-on-rails - 在 Ruby on Rails 中的多对多关系中,如何使用父表表单中的数据在连接表中创建记录?

Angular刷新页面重复url中的页面

http - 如何在 Golang 路由中传递 URL 作为参数?

python - 为什么我在 'excpet'上收到语法错误?

python - 捕捉任何东西并将其保存到变量中