2

paginate(3.0.3)は、継承されたリソース(1.3.1)では機能しません。私のコントローラーでは:

protected
def collection
  @posts ||= end_of_association_chain.paginate(:page => params[:page])
end

イニシャライザにrequire'will_paginate/ array'を追加しましたが、これで問題が解決しません。どうすれば仕事に取り掛かることができますか?私の見解では、エラーが発生します

undefined method `total_pages' for #<ActiveRecord::Relation:0x00000004312e38>
4

1 に答える 1

3

これはちょっと長いショットですが、私はこの問題に遭遇し、それが私が使用している別の宝石であるCanCanであることがわかりました。これは私が最初に遭遇したことの1つだったので、いつか誰かに役立つかもしれないと思いました。

チェックアウト:https ://github.com/ryanb/cancan/wiki/AliExpress-Resources

load_and_authorize_resource条件付き割り当ての右側がメソッドで実行されないように、コレクションをロードするための呼び出しcollection。上記のリンクで説明されている修正は、収集アクションの承認をスキップし、collectionメソッドで明示的にチェックを実行することです。

skip_load_and_authorize_resource :only => :index

protected

def collection
  @posts ||= end_of_association_chain.accessible_by(current_ability).paginate(:page => params[:page])
end

それが誰かに役立つことを願っています。

于 2012-09-17T21:31:22.350 に答える