在rails中使用命名空间时的双控制器?

时间:2011-08-08 20:02:17

标签: ruby-on-rails ruby namespaces

我正在使用命名空间(管理部分)处理应用程序。有没有创建2个控制器的DRY解决方案?因为我需要创建一个公共用户控制器和一个管理员用户控制器来管理用户。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

您可以考虑使用可选的“编辑”按钮渲染页面。例如,像这样:

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

这样,用户只将其视为一个页面,但管理员会看到允许他们编辑该字段的其他控件。附:确保您的控制器正在检查以确保它是一个正在呼叫更新呼叫的管理员。