2011-08-08 68 views
1

我正在使用命名空間(管理部分)的應用程序。有沒有創建2個控制器的DRY解決方案?因爲我需要創建一個公共用戶控制器和一個管理用戶控制器來管理用戶。在rails中使用命名空間時的雙控制器?

+0

我有點困惑你的問題。是否有兩個控制器,一個用於查看用戶的配置文件,另一個用於允許管理員對其進行編輯,並且您想要合併這兩個控制器?或者,您是否擁有「用戶」的概念和「管理員」的概念,並且您希望使用某種基於角色的模型將它們結合起來? –

+0

第一個。我想要一個合併它們的解決方案。 – Databaas

回答

1

如何繼承用戶控制器?我自己使用它(對於圖像),它很適合我:

# file: apps/controllers/images_controller.rb 
class ImagesController < ApplicationController 
    # image code (to show the image for example) 
end 

# file: apps/controllers/admin/images_controller.rb 
class Admin::ImagesCOntroller < ImagesController 
    # additional admin code (to delete the image for example) 
end 
+0

我現在繼承了Admin :: BaseController。但我認爲你所建議的是最好的方法。 – Databaas

+0

哎呀發現了一個錯誤:當然'ImagesController'有它自己的(通常)繼承 – Veger

0

您可能會考慮使用可選的「編輯」按鈕來渲染頁面。例如,像這樣:

Name: <%= @user.name %> 
<% if @user.admin? %> 
<% form_for @user do |f| %> 
    Editing stuff 
<% end %> 
<% end %> 

這樣一來,用戶只能看到它作爲一個頁面,但管理員認爲,允許他們編輯的字段額外的控制。附:確保在你的控制器中你正在檢查,以確保它是一個管理員調用更新電話。

相關問題