1

rails_admin을 사용하고 있습니다. 내가 특정 자원에 갈 때. 입력 URL로# <Array : 0xc347540> kaminari "page"에 대한 정의되지 않은 메서드 페이지. rails_admin

localhost:3000/admin/rule 

이 오류가 발생합니다. 코드 :

scope = Rule.all 
scope.page(1).per(2) 

입니다. 위의 코드는 rails_admin gem.long 파일에서 mongoid.rb라는 파일에 adapters 폴더에 있습니다. 전체 로그 :

NoMethodError (undefined method `page' for #<Array:0xcea7408>): 
mongoid (2.4.8) lib/mongoid/criteria.rb:385:in `method_missing' 
/home/usman/.rvm/gems/[email protected]/bundler/gems/kaminari-809105ad782a/lib/kaminari/models/mongoid_extension.rb:11:in `page' 
/home/usman/.rvm/gems/[email protected]/bundler/gems/rails_admin-069819944cc9/lib/rails_admin/adapters/mongoid.rb:37:in `all' 
/home/usman/.rvm/gems/[email protected]/bundler/gems/rails_admin-069819944cc9/app/controllers/rails_admin/main_controller.rb:127:in `get_collection' 
/home/usman/.rvm/gems/[email protected]/bundler/gems/rails_admin-069819944cc9/app/controllers/rails_admin/main_controller.rb:39:in `list_entries' 
/home/usman/.rvm/gems/[email protected]/bundler/gems/rails_admin-069819944cc9/lib/rails_admin/config/actions/index.rb:30:in `block (2 levels) in <class:Index>' 

이 오류를 해결하려면 어떻게해야합니까? Rule.allArray를 반환하기 때문에

답변

4

당신은 Array미나리 방법을 호출 할 수 없습니다.

그래서 당신은 이런 식으로 뭔가를 할 필요가 : Rule.page(1).per(2) 다음

이다 문서와 의 예 미나리 사용 :

https://github.com/amatsuda/kaminari

+0

이것은 정확합니다. –

3

사용 나는했습니다이

Kaminari.paginate_array(Rule.all).page(params[:page]) 
+0

그게 최선의 대답입니다! – rafaels88

+0

이 코드를 어디에 넣어야합니까? –

4

몽고이 (Mongoid)를 사용하여 잠시 동안이 문제에 계속해서 대처 해 왔습니다. 때때로 RailsAdmin에서 페이지를 새로 고침하면 문제가 해결됩니다.

카미나리의 후크가 내 환경에서 초기화되지 않았기 때문에 카미 마리의 확장 방법에 의존하는 모델은 사용할 수 없다는 것을 알았습니다.

는 단순히 Kaminari's railtie에서 다음 줄을 가져다가 내 rails_admin initializer의 상단에 넣어 :

Kaminari::Hooks.init 

지금 상황이 나를 위해 일하게 될 것으로 보인다. 그러나 ActiveSupport 콜백이 해당 코드를 실행하지 않는 이유는 알 수 없습니다.

+0

은 mongo와 rails_admin에서 같은 문제를 고쳤습니다. 2 년이 지난 지금도 문제는 여전히 있습니다. – Oleksandr

+0

내 배열에 대해 동일한 오류가 발생합니다. 단,'page'보다는'current_page'를 제외하고. 이 방법은 여전히 ​​효과가 있습니까? 또한 Rails_admin –

+0

을 사용하여 엔진 내부에서 필요한 mongoid 모델을 사용하지 않았습니다. –

0

Kader의 솔루션은 훌륭합니다! 유일한 것은 그것이 작동하게 만들기 위해 .per를 추가해야한다는 것을 발견했습니다.

Kaminari.paginate_array(Rule.all).page(params[:page]).per(PER_PAGE_RECORDS) 
관련 문제