在ruby-on-rails上的分页

时间:2012-12-14 16:50:23

标签: ruby-on-rails

我最近开始学习ruby-on-rails,现在我已经到了可以创建一些但仍然不太熟悉语法的地步。

今天我一直致力于分页,所以你可以看到我想在每页显示15个项目,所以现在这个很好用:

<% (0..@items_count).step(15) do |i| %>
     <li class="<%='active' if params[:offset].to_i == i%>"><%= link_to i/15+1, items_path(:offset => i) %></li>
<% end %>

这是我被卡住的部分:

<% (0..@items_count).step(15) do |i| %>
     <li class="<%='active' if params[:offset].to_i == i%>"><%= link_to i/15+1, items_path(:offset => i, :age => 10) %></li>
<% end %>

由于语言技能的限制(从我这边),我试图在偏移旁边传递一些额外的参数但不能这样做

所以目前我的链接看起来像这样:

http://localhost:3000/items?offset=20

但我的观点是与这样的多个参数链接:

http://localhost:3000/items?offset=20&age=10

但不只是一个而是n个参数

解决方案:

感谢Mr.Yoshiji提供答案。 我试图直接用:age => "params[:age]"

来做

但这有效:

:age=> "#{params[:age]}"

应用于上述示例的逻辑:

<% (0..@items_count).step(15) do |i| %>
         <li class="<%='active' if params[:offset].to_i == i%>"><%= link_to i/15+1, items_path(:offset => i, :age => "#{params[:age]}") %></li>
<% end %>

1 个答案:

答案 0 :(得分:2)

您可以在路径助手中传递更多属性:

items_path(:offset => i, :age => 10) 
# should generates an url with get params like following: 
/items?offset=12&age=10 # (assuming 'i' = 12)

来自文档seen on APIdock.com #link_to

link_to "Nonsense search", searches_path(:foo => "bar", :baz => "quux")
# => <a href="/searches?foo=bar&baz=quux">Nonsense search</a>