我的网站网址有问题。 我有2条路由用于相同的操作,原始路由和重写的URL:
get '/page/:id' => 'page#view'
get '/:username/:rewritten_url' => 'page#view'
除非我尝试从重写的页面生成原始网址,否则一切正常。示例:
我有2个页面:一个带有重写的URL,第二个没有(我没有重写的URL)。
page_id : 1
rewritten_url : /my-super-page
page_id : 2
rewritten_url : nil
我的问题是当我尝试使用url_for方法从第1页生成指向第2页的链接时。
如果我在第1页上使用重写的网址,则无效。 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方法的覆盖,但我禁用了解决此问题的时间。