2015-08-31 75 views
7

我遇到Active Admin问题。下面是版本:活动管理员:无法访问显示/编辑页面

  • 红宝石 '2.2.1'

  • 轨 '4.2.0'

  • activeadmin:1.0.0.pre1

  • ARBRE:1.0。 3(提到这个,因为它似乎与我的问题挂钩)

我们升级到了rails 4.2,并且必须升级activeadmin(从0.5)。经过几次调整(特别是授权系统)之后,似乎一切正常,除了一个大问题:我只能访问索引页。当进入带有ID的页面(例如:“http://localhost:3000/admin/companies/2968”)时,出现此错误:

没有路由匹配{:action =>“edit”,:controller =>“admin/companies”,: format => nil,:id =>#{用户标识:nil,[所有用户属性都有nil值]}}。缺少必需的键:[:id]

看起来param [:id]以某种方式变成空的用户,这当然会使其中断。

这是我知道的:

  • 把一个binding.pry当我的ApplicationController的顶部和检查参数,可以我得到{:动作=> “编辑”,:控制器=>“管理/公司”:格式=>零,:ID => 2968}(这里,所以没问题)

  • 是引发错误的线路有:

active_admin /资源/ show.html.arb

- > ARBRE /元件/ builder_method.rb#insert_tag

- > ARBRE /元件/ builder_method.rb#build_tag

- > ActionPack的/ actiondispatch /旅程/格式化#产生时(当调用此方法,path_parameters ID值已损坏,这会引发错误)

任何想法为什么我的ID参数解释不正确/我可以在哪里看得更远?

编辑>>我有这个在我的routes.rb

ActiveAdmin.routes(self) 
devise_for :admin_users, ActiveAdmin::Devise.config 

和生成的路线看起来很好用耙路线(在这个特殊的例子,我有管理/企业#编辑admin_company GET /管理/企业/:id(.:format)

EDIT2 >>如果还不清楚,这种情况对于所有显示的页面。 如果我去http://localhost:3000/admin/projects/例如,它工作正常,但http://localhost:3000/admin/projects/23815给我的id =空用户还有

+0

请将'app/admin/company.rb'文件添加到您的问题中。 – scarver2

+0

此外,将你的'config/initializers/active_admin.rb'重命名为'config/initializers/active_admin.rb.off',并重新运行ActiveAdmin的安装程序'bundle exec rails g active_admin:install'来查看是否解决了这个问题。确保'ActiveAdmin.routes(self)'在你的'routes.rb'文件中。另外,从Rails控制台,请确保公司<->用户关联正在按错误消息暗示的方式工作。 – scarver2

+0

Thx回复。 重新运行AA的安装程序没有解决它。 我在帖子中添加了路线的详细信息。 公司/用户协会工作正常,并且admin/company.rb在更新之前工作,这个特殊问题实际上发生在甚至去到这个文件和所有模型之前!每个管理员/型号/ ID路线都被打破 – BPruvost

回答

0

我不认识这个问题,但0.5是一个非常旧的版本。根据我的经验,我们不得不upgrade in steps,例如Rails 3.2/AA 0.6来缩小各种问题的原因。回顾old CHANGELOG我在0.6.1中发现了this fix,这可能与您的问题有关。

相关问题