0

Rails 3.2.8 アプリでは、ページ 1 の後に次のページまたは別のページをクリックすると、will_paginate によって ActiveRecord::RecordNotFound エラーが発生します。エラーは次のとおりです。

ActiveRecord::RecordNotFound in LeaseBookingsController#show

Couldn't find LeaseBooking with id=search_results

Parameters:

{"page"=>"4",
 "id"=>"search_results"}

search_results はコントローラーのカスタム アクションです。

  def search_results
    @lease_booking = LeaseBooking.new(params[:lease_booking], :as => :roles_search)   
    @lease_bookings = @lease_booking.find_lease_bookings.paginate(:per_page => 40, :page => params[:page])
  end

find_lease_bookings は、lease_booking レコードを取得するモデルのメソッドです。エラーは will_paginate のみです。gemfile には次のものがあります。

gem 'will_paginate', '~> 3.0'

ページングの問題を解決する解決策はありますか? ありがとう。

4

1 に答える 1

1

今日も同様の問題に直面し、多くの時間を無駄にしました。そして、ここに理由があります。

「フォームのアクションが POST (またはその他の HTTP メソッド) の場合、検索用語は後続のページ リンクに適用されません。つまり、「次のページ」またはその他のページ リンクをたどると、検索パラメーター( s) は失われます。」

このリンクをチェックしてください。 https://github.com/mislav/will_paginate/wiki/Simple-search

したがって、解決策は、POST の代わりに GET を使用することです。

于 2013-02-11T12:46:29.477 に答える