我正在尝试使用下拉菜单在Rails 3.2中创建一个分页索引视图,以选择每页显示的项目数。我正在使用will_paginate gem并且分页功能运行良好。
但是,根据下面显示的当前设置,我在更改下拉菜单选项时收到验证错误。它似乎试图创建或保存Contact模型,而不是仅仅对索引操作发出另一个请求。任何帮助将不胜感激。
这是我的索引操作:
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 %>
最后,这是我用来尝试在每页的项目更改时向联系人#index提交新请求的jQuery:
$(document).ready(function() {
$("#switch-view").change(function() {
$("#contacts-index").submit();
});
});
答案 0 :(得分:1)
:method => get
移出第一个哈希值。
<%= form_tag({ :action => "index"}, { :method => "get", :id => "contacts-index" }) do %>
没有这个,它正在做一个帖子并将'方法'作为参数提交。 “index”网址的帖子会导致您看到的验证错误。