gpt4 book ai didi

ruby-on-rails - 事件管理员 : Can't access show/edit pages

转载 作者:数据小太阳 更新时间:2023-10-29 07:00:59 24 4
gpt4 key购买 nike

我在使用 Active Admin 时遇到问题。以下是版本:

  • ruby '2.2.1'

  • rails '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=> #{User id: nil, [所有具有 nil 值的用户属性] }}。缺少必需的键:[:id]

看起来 param[:id] 以某种方式更改为空用户,这当然会导致它中断。

这是我所知道的:

  • 将 binding.pry 放在我的 ApplicationController 之上并检查参数时,我得到 {:action=>"edit", :controller=>"admin/companies", :format=>nil, : id=>2968}(所以这里没问题)

  • 引发错误的行是:

active_admin/resource/show.html.arb

-> arbre/element/builder_method.rb#insert_tag

-> arbre/element/builder_method.rb#build_tag

-> actionpack/actiondispatch/journey/formatter#generate(调用此方法时,path_parameters ID值已经损坏,引发错误)

知道为什么我的 ID 参数没有被正确解释/我可以在哪里进一步查看吗?

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

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

并且生成的路由与 rake 路由看起来很好(在这个特定的例子中,我有 admin/companies#edit admin_company GET/admin/companies/:id(.:format)

EDIT2 >> 如果不清楚,所有显示页面都会发生这种情况。如果我去http://localhost:3000/admin/projects/例如,它工作正常,但是 http://localhost:3000/admin/projects/23815也给我 id = empty user

最佳答案

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

关于ruby-on-rails - 事件管理员 : Can't access show/edit pages,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32313534/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com