6

我最近观看了有关活动管理员的 railscast 284 并希望将其实现到我的 Web 应用程序中,但是当我添加资源时遇到了问题。每次我尝试导航到创建的选项卡时都会收到以下消息:

NameError in Admin::LoadsController#index

undefined local variable or method `per' for []:ActiveRecord::Relation
Rails.root: /Users/thomascioppettini/rails_projects/want-freight

Application Trace | Framework Trace | Full Trace
Request

Parameters:

{"order"=>"id_desc"}
Show session dump

Show env dump

Response

Headers:

没有任何

我能想到的唯一可能会影响应用程序的事情是添加一个 recaptcha 来设计,这是活动管理员所依赖的。

4

4 回答 4

3

对我来说,这看起来像是一个分页问题。你用的是什么宝石?您应该提供有关您的设置的更多详细信息。你能告诉我们你的管理目录中的资源文件吗?您使用的是什么版本的 rails 和什么 ActiveAdmin?

于 2011-09-27T11:22:47.333 回答
3

如果您使用 will_paginate gem,请将版本设置为 3.0.pre2。我正在使用,它会在我运行Reverting时~>3.0.pre2自动更新,从而解决了这个问题。如果您使用的是 Bundler,则该行是这样的:3.0.2bundle update

gem "will_paginate", "3.0.pre2"
于 2011-10-06T15:08:16.123 回答
2

我同意戴维德的观点。这是一个分页错误。将“Kaminari”宝石添加到您的 Gemfile。根据活跃的管理员文档,它使用 kaminari 进行分页.. will_paginate 也将像 swilliams 描述的那样为您工作......

于 2011-11-05T19:31:07.387 回答
1

据我了解 active_admin 不再支持 will_paginate 。但是,如果您不想将分页重写为 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
于 2012-12-26T10:43:23.913 回答