我必须在这里做些蠢事。我使用rails 3.2.19和activeadmin 0.6.0。基本上我正试图通过侧栏向下浏览belongs_to关联。我已经使用文本夹具加载了我的数据库,并可以在rails控制台中向下钻取关联,即:
2.1.1 :004 > Employee.first.blogposts.first
Employee Load (0.1ms) SELECT "employees".* FROM "employees" LIMIT 1
Blogpost Load (0.1ms) SELECT "blogposts".* FROM "blogposts" WHERE "blogposts"."employee_id" = 615722309 LIMIT 1
=> #<Blogpost id: 298486374, title: "Mine too", body: "Can we try markdown?", employee_id: 615722309, created_at: "2014-07-25 03:27:14", updated_at: "2014-07-25 03:27:14">
2.1.1 :005 >
我的模特协会没什么特别的。基本上就像它们一样简单:
class Blogpost < ActiveRecord::Base
belongs_to :employee
end
class Employee < ActiveRecord::Base
has_many :blogposts
end
与我的活动管理资源相同。我根据文档构建了这些。
ActiveAdmin.register Employee do
sidebar "Details", only: [:show, :edit] do
ul do
li link_to("Blogposts", admin_employee_blogposts_path(employee))
end
end
end
ActiveAdmin.register Blogpost do
belongs_to :employee
end
我也可以看到当我做路线时指定的路线
admin_employee_blogposts GET /admin/employees/:employee_id/blogposts(.:format) admin/blogposts#index
员工页面上的链接(在Employee资源中定义的链接)呈现没有错误,但是当我点击它时,我收到:
Admin :: BlogpostsController #index中的NoMethodError 未定义的方法`find'代表nil:NilClass 参数: { “EMPLOYEE_ID”=&gt; “中615722309”}
浏览器中指定的URL为:
http://localhost:3000/admin/employees/615722309/blogposts
有人知道如何解决这个问题吗?我确信有问题的特定员工ID有博客文章,正如我使用rails控制台所证明的那样。任何人都可以提供任何帮助将不胜感激。
谢谢,
丹·苏利文答案 0 :(得分:1)
尝试使用:
ActiveAdmin.register Blogpost do
belongs_to :employee, parent_class: Employee
end