我一直在尝试正确设置分页,但是我无法遵循任何教程并让它正常工作。
我基本上想要设置的是,当用户选择他们想要在页面上显示的公司数量时,以下循环将每页上给定数量的公司分页。如果用户没有选择特定数量的公司/页面,则会设置默认值。
如果有人能够推动我朝着正确的方向前进,那将非常感激。
查看
<ul class="list-group">
<%= @comps.find_each do |comp| %>
<li class="list-group-item">
<div class="row">
<div class="span12">
<p style="font-size: 1.5em"><strong><%= link_to comp.name, comp %></strong></p>
<hr class="divider">
<div class="row">
<div class="span6">
<p><strong>Primary Field:</strong> <%= comp.primary_field %></p>
<p><strong>Description:</strong> <%= truncate(comp.description, length: 150) { link_to "Read More", comp, :target => "_blank"}%>
</p>
</div>
<div class="span5">
<% if signed_in? %>
<p><% if !(current_user.favorites.include? comp) %>
<%= link_to 'Favorite',
favorite_company_path(comp, type: "favorite"),
class: "btn btn-primary",
method: :put%>
<% else %>
<%= link_to 'Unfavorite',
favorite_company_path(comp, type: "unfavorite"),
class: "btn btn-danger",
method: :put%>
<% end %></p>
<% end %>
<p><strong>Website:</strong> <%= auto_link(comp.website, :html => { :target => '_blank' })%></p>
<p><strong>Location:</strong> <%= comp.address %></p>
</div>
</div>
</div>
</div>
</li>
<% end %>
<%= will_paginate @comps%>
</ul>
控制器(处理列表页面的地方)
def filter
if ((params[:field] != "") and (params[:field] != "All Fields") and (params[:field] != nil))
# This will apply the filter
@comps = Company.where(primary_field: params[:field])
else
# This will return all records
@comps = Company.all
end
end
def list
@fields = @@primary_field
filter
@comps = @comps.paginate(:page => params[:page], :per_page => params[:number_of_companies] ||= 5)
end
列表页模型
class DynamicPages < ActiveRecord::Base
self.per_page = 5
end
答案 0 :(得分:0)
因为你使用的是will_paginate。你可以这样做。
Post.paginate(:page => params[:page], :per_page => params[:number_of_companies] ||= 10)
这里params [:number_of_companies]是用户选择的公司数量,10是
默认页面值。
课程帖子
self.per_page = 10
端
此外,您的代码段&lt;%= @ comps.find_each do | comp | %&gt ;,应为此&lt; %%&gt;而不是&lt;%=%&gt;