rails url_for不会从不同的页面生成相同的URL

时间:2015-12-17 15:23:46

标签: ruby-on-rails-4 url-for

我的网站网址有问题。 我有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方法的覆盖,但我禁用了解决此问题的时间。

0 个答案:

没有答案