我最近看过有关活动管理员的railscast 284,并希望将其实施到我的网络应用中,但是当我添加资源时遇到了问题。每当我尝试导航到创建的选项卡时,我都会收到以下消息:
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 to devise,主动管理员依赖它。
答案 0 :(得分:3)
对我来说,看起来这是一个分页问题。你用的是什么宝石?您应该提供有关您的安排的更多详细信息。你能从admin目录向我们展示你的资源文件吗?什么版本的rails和您使用的ActiveAdmin是什么?
答案 1 :(得分:3)
如果您使用的是will_paginate gem,请将版本设置为3.0.pre2。我正在使用~>3.0.pre2
,当我运行3.0.2
还原修复此问题时自动更新为bundle update
。如果您使用的是Bundler,那么这一行是:
gem "will_paginate", "3.0.pre2"
答案 2 :(得分:2)
我同意Dawaid。这是一个pagiantion错误。添加" Kaminari"宝石给你Gemfile。根据活跃的管理员文档,它使用kaminari进行分页.. will_paginate也会像swiliams描述的那样对你有用...
答案 3 :(得分: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