2013-02-19 6 views
11

レール:activeadmin、「#のための<ActiveRecordは::関連:0x4d15ee0>私は成功しActiveAdminをインストール

マイ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

答えて

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

これは私のために働いてくれてありがとうございます。この1つを承認してください。 –

19

この1つは私を助け:

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

+0

とサーバーを再起動することを忘れないでください – truongnm

8

あなたは雷のための初期化子を作成することができ、このように:私の経験で

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

、私はそれを動作させるために、サーバーを再起動する必要がありました。それで全部です。

0

私のアプリでは同じ問題があり、WillPaginateからKaminariに切り替えました。

簡単な変更です:ページ付け(のページ: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ライン#2が上昇-06bf79c58216 /アプリ/ビュー/ active_admin /リソース/ index.html.arb:引数の間違った数(1、0)

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 
関連する問題