2012-12-17 27 views
0

在我的應用程序中有3個與員工相關的控制器。現在他們在控制器文件夾內。如何在rails中的一個文件夾中管理相關的控制器?

heronhrm/app/controllers 
employeename_controller.rb 
employeeaddress_controller.rb 
employeelist_controller.rb 

現在所有工作都很好。現在我想列出所有員工相關的控制器內部員工像文件夾,

heronhrm/app/controllers/employees 
employeename_controller.rb 
employeeaddress_controller.rb 
employeelist_controller.rb 

現在什麼樣的變化,我應該在我的代碼在這種情況下工作做也喜歡第一。例如在我的意見,模型等

+0

你真的是指控制器嗎?控制器文件的Rails約定與'EmployeeController'類中的'employee_controller.rb'類似。你在這裏展示的東西看起來與模型更相關。或者你是否有單獨的控制器來管理員工的每個屬性? – khustochka

+0

對不起,我編輯我的問題。是的,每個控制器工作方式不同只是我想在一個文件夾中收集3個控制器。所以每個人都應該像他們工作之前一樣工作..所以我必須做些什麼改變。同樣在視圖中,他們應該在員工文件夾中。我必須改變像路線,... – regmiprem

+1

在軌道中搜索命名空間... –

回答

1

首先,你必須更新你的routes.rb這樣的:

namespace :employees do 
    # all your employees routes here 
end 

然後,像@andrjas說,你必須前綴控制器的名字:

class Employees::EmployeenameController < ApplicationController 
    # your code here 
end 

最後將您的意見到一個文件夾中app/views/employees/

+0

我做了喲說,但對於employeename_controller.rb工作什麼肩我把內部命名空間:員工做 #你所有的員工在這裏的路線 結束我做了像命名空間:員工做 資源:僱員 結束,但我得到像這樣的錯誤沒有路線匹配[GET]「/ employeename」 – regmiprem

+0

你做了正確的事情,但是如果你現在檢查耙路線,你會看到你的僱員的新路徑必須是:GET/employees/employeename。所以你必須在代碼中的任何地方改變你的路線。 – siekfried

1

您將不得不將類名稱從Employeename更改爲Employees :: Employeename(我建議將Employeename更改爲簡單名稱,因爲它是一個重複),視圖也應該放在「員工」的子目錄中(我在這裏猜測,但應該是「Rails方式」)。這些模型並沒有真正連接到控制器,應該保持不變。

+0

我欣賞你的答案你能指導我用簡單的代碼.. – regmiprem

相關問題