16

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>
4

8 に答える 8

37

アクティブな管理者にはカミナリのページネーションが必要です will paginateを使用する場合は、カミナリに一致するように will paginate 関数のエイリアスを作成できます。

# 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

そして、これは私のために働いた。

于 2013-02-28T11:56:58.330 に答える
25

これは私を助けました:

 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
于 2013-11-30T08:54:36.680 に答える
4

Ruby 2.1.5p273 と Rails 4.1.8 を使用しています。同じ問題が発生しました。 @ mohamed-ibrahimの回答でエラーは解決しましunderfined method 'per'たが、別のエラーが発生しました

c:/RailsInstaller/Ruby2.1.0/lib/ruby/gems/2.1.0/bundler/gems/activeadmin-06bf79c58216/app/views/active_admin/resource/index.html.arb を表示している場所で、行 #2 が発生しました: 間違った数の引数 (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
于 2015-11-29T13:13:04.963 に答える
0

同じ問題が発生し、アプリを WillPaginate から Kaminari に切り替えました。

これは単純な変更です: paginate(page:1,per_page:10) は page(1).per(10) になります

willPaginate がアプリにどれだけ深く絡んでいるかにかかっていると思います。

于 2014-09-29T21:36:49.230 に答える