2014-07-25 74 views
1

我必須在這裏做一些愚蠢的事情。我使用rails 3.2.19和activeadmin 0.6.0。基本上,我試圖通過側欄通過belongs_to關聯進行導航。我已加載我的文字夾具數據庫,並可以通過協會在軌道控制檯,即向下鑽取:belongs_to on activerecord呈現爲未找到

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 

員工頁面(在員工資源定義的一個)鏈接指定的路線呈現沒有錯誤,但是當我點擊但我得到:

NoMethodError在管理:: BlogpostsController#指數 未定義的方法`發現」的零:NilClass 參數: { 「僱員標識」=> 「615722309」}

在瀏覽器中指定的網址:

http://localhost:3000/admin/employees/615722309/blogposts 

有誰知道如何解決呢?我確信所討論的特定員工ID具有博客帖子,正如我使用rails控制檯演示的那樣。任何人可以提供的幫助將不勝感激。

謝謝

丹沙利文

+0

你能張貼你的'你的控制器的index'方法? – Pavan

+0

嗨,Pavan感謝您的回覆。我實際上沒有我的控制器的索引方法。實際上我甚至沒有一個存在於/ admin目錄之外的控制器(應用程序控制器除外)。我只爲員工和博客創建了模型。員工管理資源頁面呈現良好,沒有控制器。如果你指的是Activeadmin.register Employee do代碼塊的活動管理員,我發佈的是完整的完整內容。再次感謝你的幫助。 – dps

+0

我的意思是你的'Admin :: BlogpostsController'的'index action'.Do you have it right。 – Pavan

回答

1

嘗試使用這樣的:

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

謝謝先生。這不是在文檔中,雖然它解決了我的問題100%。 – dps

+0

沒有記錄,因爲它是一個錯誤。我考慮提交一個問題,但已經有一個:https://github.com/josevalim/inherited_resources/issues/325 –