0

我的网站网址有问题。我有 2 条路线用于相同的操作,原始的路线和重写的 url:

get '/page/:id'                  => 'page#view'
get '/:username/:rewritten_url'  => 'page#view'

一切正常,除非我尝试从重写的页面生成原始 url。例子 :

我有 2 页:一个带有重写的 url,第二个没有(我没有重写的 url)。

page_id : 1
rewritten_url : /my-super-page

page_id : 2
rewritten_url : nil

我的问题是当我尝试使用 url_for 方法从第 1 页生成指向第 2 页的链接时。

  • 如果我在第 1 页上使用重写的 url,它就不起作用。url_for 为我生成以下原始 url:/my-super-page?id=2(而不是 /page/2)

  • 如果我在带有原始网址的第 1 页上,它就可以工作。

此外,如果我尝试从原始页面或重写页面生成重写链接,它也可以工作。

编辑

这是一个失败的 url_for 调用(我能做到的最简单的方法):

url_for(controller: 'page', action: 'view', id: '3423423423')
# returns /my-super-page?id=3423423423

通常,我有一个 url_for 方法的覆盖,但我禁用了它来解决这个问题。

4

0 回答 0