2013-02-19 20 views
11

Tôi đã cài đặt thành công ActiveAdmin:Rails: activeadmin, phương pháp xác định 'mỗi' cho # <ActiveRecord :: Quan hệ: 0x4d15ee0>

đang gemfile của tôi:

nguồn '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' 

và tôi đã làm điều này:

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

Tôi đã liên kết một số mô hình với ActiveAdmin.

Lỗi sau khi nhấp vào trong bảng điều khiển vào liên kết sản phẩm:

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

này đã giúp tôi: http://tech-brains.blogspot.in/2012/11/kaminari-willpaginate -incompatibility.html – RAJ

Trả lời

29

tích cực quản lý cần kaminari pagination Nếu bạn muốn sử dụng sẽ đánh số trang, bạn có thể làm bí danh cho sẽ đánh số trang chức năng để phù hợp với Kaminari một:

# 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 

Và điều này làm việc cho tôi.

+1

tuyệt vời nó làm việc cho tôi nhờ xin vui lòng phê chuẩn này –

19

một này đã giúp tôi:

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

Đừng giả mạo đề cập đến để thêm mã này vào một tập tin và dính nó vào thư mục config/initializers.Tôi sẽ đặt tên cho tập tin will_paginate.rb nhưng sử dụng bất cứ thứ gì bạn muốn mà sẽ nhắc bạn nhớ nó là gì. – JCC

+0

và đừng quên khởi động lại máy chủ – truongnm

8

Bạn có thể tạo một Initializer cho Kaminari, như thế này:

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

Theo kinh nghiệm của tôi, tôi đã phải khởi động lại máy chủ để làm cho nó làm việc. Đó là tất cả.

0

Tôi đã gặp vấn đề tương tự và chuyển từ WillPaginate sang Kaminari cho ứng dụng của tôi.

Đó là một sự thay đổi đơn giản: paginate (trang: 1, per_page: 10) trở thành trang (1) .per (10)

Tôi đoán nó phụ thuộc sâu sắc willPaginate đang vướng với ứng dụng của bạn.

4

Tôi đang sử dụng Ruby 2.1.5p273 và Rails 4.1.8. Tôi gặp phải vấn đề tương tự. @ câu trả lời mohamed-ibrahim 's giải quyết được lỗi underfined method 'per', nhưng có một lỗi

Hiển thị c: /RailsInstaller/Ruby2.1.0/lib/ruby/gems/2.1.0/bundler/gems/activeadmin -06bf79c58216/app/views/active_admin/resource/index.html.arb nơi dòng # 2 được nâng lên: số lượng đối số sai (0 cho 1)

Thêm alias_method :total_count, :count sửa lỗi.

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

này đã làm việc cho tôi:

initializers/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 
Các vấn đề liên quan