我正在尝试在 Rails 3.2 中创建一个分页索引视图,其中包含一个下拉菜单来选择每页显示的项目数。我正在使用 will_paginate gem,并且分页功能运行良好。
但是,使用下面显示的当前设置,更改下拉菜单选择时出现验证错误。它似乎正在尝试创建或保存 Contact 模型,而不是仅仅向 index 操作发出另一个请求。任何帮助将不胜感激。
这是我的索引操作:
def index
#logic here to set per_page value depending on request?
@contacts = Contact.paginate(page: params[:page], :per_page => 20)
end
这是我的 index.html.erb 视图,我尝试使用每页项目的下拉菜单:
<%= form_tag({ :action => "index", :method => "get" }, { :id => "contacts-index" }) do %>
<%= select_tag(:view, options_for_select([["10", 10], ["25", 25], ["50", 50]]), { :id => "switch-view" }) %>
<% end %>
<% @contacts.each do |contact| %>
<%= contact.first_name %><%= contact.last_name %>
<% end %>
最后,当每页的项目发生变化时,这是我用来尝试将新请求提交给 contacts#index 的 jQuery:
$(document).ready(function() {
$("#switch-view").change(function() {
$("#contacts-index").submit();
});
});