Rails 3.2 で、ページごとに表示されるアイテムの数を選択するドロップダウン メニューを使用して、ページ分割されたインデックス ビューを作成しようとしています。私は will_paginate ジェムを使用していますが、ページネーション機能はうまく機能しています。
ただし、以下に示す現在の設定では、ドロップダウン メニューの選択を変更すると検証エラーが発生します。index アクションに別のリクエストを行うのではなく、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 %>
最後に、ページごとのアイテムが変更されたときに、contacts#index に新しいリクエストを送信するために使用している jQuery を次に示します。
$(document).ready(function() {
$("#switch-view").change(function() {
$("#contacts-index").submit();
});
});