在找不到的activerecord渲染上的belongs_to

时间:2014-07-25 14:50:29

标签: ruby-on-rails-3 activerecord activeadmin

我必须在这里做些蠢事。我使用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控制台所证明的那样。任何人都可以提供任何帮助将不胜感激。

谢谢,

丹·苏利文

1 个答案:

答案 0 :(得分:1)

尝试使用:

ActiveAdmin.register Blogpost do
  belongs_to :employee, parent_class: Employee
end