命名空间全局函数

时间:2012-02-20 13:04:43

标签: ruby-on-rails-3

我在rails 3.1.3上使用ruby来构建我的应用程序。 现在,我想为特定命名空间中的每个控制器创建一个全局函数。 (例如:我有一个管理员命名空间,我想为管理员创建特定的功能来检查用户授权并更改布局视图。)

我应该在哪里放置我的全局功能?

1 个答案:

答案 0 :(得分:0)

您通常镜像控制器中的命名空间树:

- application_controller.rb
- admin_controller.rb
- admin
+ - some_admin_controller.rb

ApplicationController

class ApplicationController < ActionController::Base
  layout "some_default_layout"

  def some_general_method
  end
end

AdminController

class AdminController < ApplicationController
  layout "admin_layout"

  def some_admin_method
  end
end

SomeAdminController

class Admin::SomeAdminController < AdminController

  # has access to some_admin_method
end

所有管理员控制器都继承自AdminController,然后使用该方法。