奇怪的Active Admin(Rails)错误

4
这绝对是我遇到的最荒谬的错误之一。我登录active admin并在任何active admin页面上看到以下内容:
(?i-mx:</body>)
我查看了服务器日志,似乎成功登录,服务器为所有列计算查询,但最终输出的是上述内容! 我使用ruby 1.9.3、rails 3.1.3和active admin版本0.4.4。
以下是其中一个页面加载的示例日志输出:
Started GET "/admin/points_logs" for 127.0.0.1 at 2012-08-01 09:01:10 -0400
  Processing by Admin::PointsLogsController#index as HTML
Geokit is using the domain: localhost
  AdminUser Load (0.4ms)  SELECT `admin_users`.* FROM `admin_users` WHERE `admin_users`.`id` = 1 LIMIT 1
   (30.9ms)  SELECT 1 FROM `points_logs` LIMIT 1 OFFSET 0
   (92.0ms)  SELECT COUNT(*) FROM `points_logs` 
  CACHE (0.0ms)  SELECT COUNT(*) FROM `points_logs` 
  CACHE (0.0ms)  SELECT COUNT(*) FROM `points_logs` 
  CACHE (0.0ms)  SELECT COUNT(*) FROM `points_logs` 
  PointsLog Load (0.7ms)  SELECT `points_logs`.* FROM `points_logs` ORDER BY `points_logs`.`id` desc LIMIT 30 OFFSET 0
  User Load (0.6ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 56 LIMIT 1
  User Load (0.7ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 2654 LIMIT 1
  CACHE (0.0ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 56 LIMIT 1
  CACHE (0.0ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 56 LIMIT 1
  User Load (0.8ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 1122 LIMIT 1
  User Load (0.5ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 718 LIMIT 1
  User Load (0.5ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 3689 LIMIT 1
  CACHE (0.0ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 3689 LIMIT 1
  User Load (0.4ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 821 LIMIT 1
  User Load (0.4ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 958 LIMIT 1
  User Load (0.4ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 4708 LIMIT 1
  CACHE (0.0ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 958 LIMIT 1
  User Load (0.4ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 5137 LIMIT 1
  CACHE (0.0ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 5137 LIMIT 1
  CACHE (0.0ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 5137 LIMIT 1
  User Load (0.7ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 3598 LIMIT 1
  CACHE (0.0ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 3598 LIMIT 1
  CACHE (0.0ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 5137 LIMIT 1
  User Load (0.6ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 413 LIMIT 1
  User Load (0.5ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 4324 LIMIT 1
  CACHE (0.0ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 4324 LIMIT 1
  User Load (0.6ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 1812 LIMIT 1
  User Load (0.4ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 3726 LIMIT 1
  User Load (0.4ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 1101 LIMIT 1
  User Load (0.4ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 2440 LIMIT 1
  User Load (0.4ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 3369 LIMIT 1
  User Load (0.4ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 3702 LIMIT 1
  User Load (0.5ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 5026 LIMIT 1
  User Load (0.4ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 684 LIMIT 1
  User Load (0.4ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 1444 LIMIT 1
  Transaction Load (0.3ms)  SELECT `transactions`.* FROM `transactions` WHERE `transactions`.`id` = 40464 LIMIT 1
  Transaction Load (0.4ms)  SELECT `transactions`.* FROM `transactions` WHERE `transactions`.`id` = 29394 LIMIT 1
  Transaction Load (0.3ms)  SELECT `transactions`.* FROM `transactions` WHERE `transactions`.`id` = 32958 LIMIT 1
  Transaction Load (0.3ms)  SELECT `transactions`.* FROM `transactions` WHERE `transactions`.`id` = 37409 LIMIT 1
  Transaction Load (0.4ms)  SELECT `transactions`.* FROM `transactions` WHERE `transactions`.`id` = 40463 LIMIT 1
  Transaction Load (0.4ms)  SELECT `transactions`.* FROM `transactions` WHERE `transactions`.`id` = 40462 LIMIT 1
  Transaction Load (0.3ms)  SELECT `transactions`.* FROM `transactions` WHERE `transactions`.`id` = 40461 LIMIT 1
  CACHE (0.0ms)  SELECT `transactions`.* FROM `transactions` WHERE `transactions`.`id` =  LIMIT 1
  Transaction Load (0.3ms)  SELECT `transactions`.* FROM `transactions` WHERE `transactions`.`id` = 40460 LIMIT 1
  Transaction Load (0.3ms)  SELECT `transactions`.* FROM `transactions` WHERE `transactions`.`id` = 40459 LIMIT 1
  Transaction Load (0.3ms)  SELECT `transactions`.* FROM `transactions` WHERE `transactions`.`id` = 40458 LIMIT 1
  Transaction Load (0.3ms)  SELECT `transactions`.* FROM `transactions` WHERE `transactions`.`id` = 40457 LIMIT 1
  Transaction Load (0.3ms)  SELECT `transactions`.* FROM `transactions` WHERE `transactions`.`id` = 40454 LIMIT 1
  CACHE (0.0ms)  SELECT `transactions`.* FROM `transactions` WHERE `transactions`.`id` =  LIMIT 1
  Transaction Load (0.3ms)  SELECT `transactions`.* FROM `transactions` WHERE `transactions`.`id` = 40452 LIMIT 1
  Transaction Load (0.3ms)  SELECT `transactions`.* FROM `transactions` WHERE `transactions`.`id` = 40451 LIMIT 1
  CACHE (0.0ms)  SELECT `transactions`.* FROM `transactions` WHERE `transactions`.`id` =  LIMIT 1
  Transaction Load (0.3ms)  SELECT `transactions`.* FROM `transactions` WHERE `transactions`.`id` = 40450 LIMIT 1
  Transaction Load (0.3ms)  SELECT `transactions`.* FROM `transactions` WHERE `transactions`.`id` = 40449 LIMIT 1
  Transaction Load (0.3ms)  SELECT `transactions`.* FROM `transactions` WHERE `transactions`.`id` = 40448 LIMIT 1
  Transaction Load (0.3ms)  SELECT `transactions`.* FROM `transactions` WHERE `transactions`.`id` = 40447 LIMIT 1
  Transaction Load (0.3ms)  SELECT `transactions`.* FROM `transactions` WHERE `transactions`.`id` = 40446 LIMIT 1
  Transaction Load (0.3ms)  SELECT `transactions`.* FROM `transactions` WHERE `transactions`.`id` = 40445 LIMIT 1
  Transaction Load (0.3ms)  SELECT `transactions`.* FROM `transactions` WHERE `transactions`.`id` = 40443 LIMIT 1
  Transaction Load (0.3ms)  SELECT `transactions`.* FROM `transactions` WHERE `transactions`.`id` = 40442 LIMIT 1
  Transaction Load (0.6ms)  SELECT `transactions`.* FROM `transactions` WHERE `transactions`.`id` = 40441 LIMIT 1
  User Load (278.6ms)  SELECT `users`.* FROM `users` 
Rendered /Users/bpn/.rvm/gems/ruby-1.9.3-p194@_1.9.3/gems/activeadmin-0.4.4/app/views/active_admin/resource/index.html.arb (2594.3ms)
Completed 200 OK in 3168ms (Views: 2084.9ms | ActiveRecord: 755.6ms)
</p>

考虑添加更多的代码。你只是展示了从数据库中查询...但我们不知道你对查询到的对象做了什么。 - Anthony Alberto
@AnthonyAlberto- 感谢您的回复。我没有对查询对象做任何操作- active admin 就像是一个显示数据库条目的接口。奇怪的是,在我切换到 Rails 3.1 后,它一直运行得很完美。这是否与资产管道有关?或者这可能是某种编码问题吗? - bpn
2个回答

6
我发现在查看 mini-profiler文档和审查config类中可用的配置选项后,有一种更干净的处理方式。

config/initializers/mini_profiler.rb中。

Rack::MiniProfiler.config.skip_paths << '/admin' #or whatever you namespace active_admin under

顺便提一下,还有几个其他有用的配置设置:

Rack::MiniProfiler.config.use_existing_jquery = true
Rack::MiniProfiler.config.pre_authorize_cb = lambda {|env| Rails.env.development?}

4

问题已解决...它是由于我的gems引起的,特别是rack-mini-profiler。这个问题非常令人头疼,因为没有明确的错误信息。我回滚到之前的提交,并痛苦地查找所有更改才发现了这个问题!


感谢上帝,Google索引速度快。我向你致敬,因为你节省了我数小时的时间。你是完全禁用了分析器吗? - Tallboy
同上,非常及时。你能否追踪到这是Active Admin还是rack-mini-profiler中的一个错误?向其中一个项目报告此问题可能是个好主意。 - Erik G.
我刚刚完全停用了分析器...尽管在0.1.7中不存在这个问题。我确实尝试在Rack Mini Profiler上开启一个问题,但在GitHub上没有找到熟悉的问题选项卡...他们没有设置问题跟踪吗? - bpn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接