5

我从 .net 迁移到 rails 并且我是初学者。我玩过但不知道如何为管理员命名空间创建一个基本控制器来共享一些功能。我的意思是,将 Base 类放在哪里,因为每次尝试都会出错。

谢谢

4

1 回答 1

14

假设您使用的是 Rails 3。您可以这样做。

路线.rb

namespace :admin do
  resources :users
end

这是控制器文件夹的结构:

controllers/
  application_controller.rb
  admin/
    base_admin_controller.rb
    users_controller.rb

管理员/base_admin_controller.rb:

class Admin::BaseAdminController < ApplicationController
  protected

    def some_shared_method
      # Do something
    end
end

您可以添加所有管理控制器将共享的任何方法。然后只需简单地继承 BaseAdminController 类。

管理员/users_controller.rb:

class Admin::UsersController < Admin::BaseAdminController
  def index
    some_shared_method
  end
end
于 2012-12-18T10:14:44.823 回答