Rails 6.0 使用 gem administrate
。标记为管理员的用户可以正确访问页面。
显示用户索引,例如,可以访问编辑页面:
/admin/users/2579/edit
但调用同一个对象的显示页面会返回错误
undefined method `admin_role_path'
指向app/views/admin/application/_collection.html.erb
由管理 gem 自动生成的第59 行
<%= %(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 %>
允许查看每个关系的详细信息。
错误生成的机制对我来说仍然是不透明的,因为在存储库中找不到上述路径。
问题的根源是什么,如何解决?