【发布时间】:2021-04-08 19:06:34
【问题描述】:
Rails 6.0 使用 gem administrate。标记为管理员的用户可以正常访问页面。
显示用户索引,例如可以访问编辑页面:
/admin/users/2579/edit
但调用同一个对象的显示页面会返回错误
undefined method `admin_role_path'
指向 app/views/admin/application/_collection.html.erb 的第 59 行,由管理 gem 自动生成
<%= %(tabindex=0 role=link data-url=#{polymorphic_path([namespace, resource])}) %>
Trace of template inclusion: #<ActionView::Template /.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/administrate-0.14.0/app/views/fields/has_many/_show.html.erb locals=["field", "page"]>, #<ActionView::Template app/views/admin/application/show.html.erb locals=["page"]>
我删除了所有代码并将其替换为简单的<%= ressource %>,将等号切换为哈希。
三个(has_many 的)连接类有一个ActiveRecord_AssociationRelation,它无法理解地调用集合表单。 <%= ressource.inspect %> 允许查看每个关系的详细信息。
错误生成的机制对我来说仍然是不透明的,因为在存储库中找不到上述路径。
问题的根源是什么?如何解决?
【问题讨论】:
标签: ruby-on-rails administrate rails-administrate