2013-02-19 29 views
11

我成功安裝ActiveAdmin:滑軌:activeadmin,每」爲#<ActiveRecord的::關聯:0x4d15ee0>

我的Gemfile代碼:

源 '未定義的方法`https://rubygems.org'

gem 'rails', '3.2.10' 

# Bundle edge Rails instead: 
# gem 'rails', :git => 'git://github.com/rails/rails.git' 

gem 'sqlite3' 


# Gems used only for assets and not required 
# in production environments by default. 
group :assets do 
    gem 'sass-rails', '~> 3.2.3' 
    gem 'coffee-rails', '~> 3.2.1' 

    # See https://github.com/sstephenson/execjs#readme for more supported runtimes 
    # gem 'therubyracer', :platforms => :ruby 

    gem 'uglifier', '>= 1.0.3' 
end 

gem 'jquery-rails' 

gem 'twitter-bootstrap-rails' 

gem 'activeadmin' 

    # gem "meta_search", '>= 1.1.0.pre' 
gem "spud_photos" 
gem 'devise' 

gem 'cancan' 
gem 'rolify' 

我做到了這一點:

bundle 
rails g active_admin:install 
rake db:migrate 
rails g active_admin:resource product 

我將一些模型鏈接到ActiveAdmin。點擊產品鏈接在儀表盤上後

錯誤:

undefined method `per' for #<ActiveRecord::Relation:0x4d15ee0> 
+0

幫我:http://tech-brains.blogspot.in/2012/11/kaminari-willpaginate -incompatibility.html – RAJ 2015-06-03 07:10:53

回答

29

如果您想使用將分頁活動管理員需要kaminari分頁 ,可以讓別名將分頁功能匹配雷之一:

# config/initializers/will_paginate.rb 
if defined?(WillPaginate) 
    module WillPaginate 
    module ActiveRecord 
     module RelationMethods 
     alias_method :per, :per_page 
     alias_method :num_pages, :total_pages 
     end 
    end 
    end 
end 

module ActiveRecord 
    class Relation 
    alias_method :total_count, :count 
    end 
end 

而這一個爲我工作。

+1

偉大的工作對我來說感謝請批准這一個 – 2014-03-20 08:55:10

19

這一個幫助我:

if defined?(WillPaginate) 
    ActiveSupport.on_load :active_record do 
    module WillPaginate 
     module ActiveRecord 
     module RelationMethods 
      def per(value = nil) per_page(value) end 
      def total_count() count end 
     end 
     end 
     module CollectionMethods 
     alias_method :num_pages, :total_pages 
     end 
    end 
    end 
end 
+0

不要僞造提及將此代碼添加到文件並將其粘貼在config/initializers文件夾中。我會將這個文件命名爲will_paginate.rb,但使用任何你想要的東西都會提醒你它的用途。 – JCC 2014-03-17 22:23:16

+0

並且不要忘記重新啓動服務器 – truongnm 2017-08-14 07:33:10

8

您可以創建雷一個初始化,這樣的:

Kaminari.configure do |config| 
    config.page_method_name = :per_page_kaminari 
end 

以我的經驗,我不得不重新啓動服務器,使其工作。就這樣。

0

我有同樣的問題,並從我的應用程序從WillPaginate切換到Kaminari。

這是一個簡單的變化:PAGINATE(頁:1,per_page:10)成爲第(1).per(10)

我想這取決於willPaginate是如何深深沉浸與您的應用程序。

4

我正在使用Ruby 2.1.5p273和Rails 4.1.8。我遇到了同樣的問題。 @穆罕默德·易卜拉欣的回答解決了這個錯誤underfined method 'per',卻得到了另一個錯誤

顯示C:/RailsInstaller/Ruby2.1.0/lib/ruby/gems/2.1.0/bundler/gems/activeadmin -06bf79c58216 /應用/視圖/ active_admin /其中線#2提出的資源/ index.html.arb:錯誤的參數數目(0 1)

加入alias_method :total_count, :count固定它。

if defined?(WillPaginate) 
    module WillPaginate 
    module ActiveRecord 
     module RelationMethods 
     alias_method :per, :per_page 
     alias_method :num_pages, :total_pages 
     alias_method :total_count, :count 
     end 
    end 
    end 
end 
0

這爲我工作:

初始化/ will_paginate.rb

if defined?(WillPaginate) 
    module WillPaginate 
    module ActiveRecord 
     module RelationMethods 
     alias_method :per, :per_page 
     alias_method :num_pages, :total_pages 
     alias_method :total_count, :total_entries 
     end 
    end 
    end 
end