link_to与可选参数不生成正确的URL

时间:2014-02-27 07:31:27

标签: ruby-on-rails

我正在尝试链接到上一页(如果可用)和下一页(如果可用)。链接在适当的情况下显示,但我无法将它们链接到正确的URL。

我尝试过这种方法的一些方法:

<%= link_to 'Prev', url_for(params), class: 'ladder-nav-button pull-left' if has_prev_page? %>
<%= link_to 'Next', ladders_path(params), class: 'ladder-nav-button pull-right' if has_next_page? %>

除了硬编码值之外:

<%= link_to 'Prev', url_for(region: 'all', page: 1), class: 'ladder-nav-button pull-left' if has_prev_page? %>

我总是最终得到/梯子的链接,而不是/ ladders / all / 1或类似的东西。

params在那里。我可以在页面上打印出来,但链接失败了。以下是相关路线(来自耙路线):

ladders GET /ladders(/:region(/:page))(.:format) ladders#show {:page=>1, :region=>"all"}

区域和页面是可选的,但默认为“all”,如果未指定,则默认为1.

我在哪里绊倒了自己?是否有一些带有可选参数的“陷阱”?

1 个答案:

答案 0 :(得分:1)

您正在使用url_for - 为什么不使用路径助手?

<%= link_to ladders_path(region: params[:region], page: params[:page]) %>