2011-06-06 135 views
1

我想知道什么是Rails方法,当涉及到创建一个完整的管理控制面板。而通过完整的我的意思是一个真正的控制面板,可用于专业级别,而不是个人/内部脚手架。Rails全面管理控制面板

我不认为它存储在与用户界面相同的文件夹中,因为它显示在博客截屏视图或入门教程中!

我敢肯定,同样的模型将被用在任何地方,但如何看待?

请详细解释。在Rails中开始我的第一个真实项目时,我不想使用我的PHP思路。

谢谢。

+0

你想让你的管理控制面板做什么?全部都是 – Ant 2011-06-06 08:57:22

+0

。我们假设这是一个新闻网站,编辑们可以登录来管理故事,创建类别,添加新的编辑器等。 – emurad 2011-06-06 12:25:37

回答

2

截至由以前的答案命名空间是保持联系的功能从其他用户的功​​能截然分开有用的暗示,例如:

# In your routes 

namespace :admin do 
    resources :stories 
    resources :editors 
    #etc. 
end 

然后,你把你的所有管理控制器在“管理”子文件夹,总是需要管理员来访问它们:

# app > controllers > admin > stories_controller.rb 

class Admin::StoriesController < ApplicationController 

    before_filter :authenticate_admin! # assuming you're using devise 

    def index 
    #etc. 
    end 

end 

这样做的好处是,你只需要在一个地方(的before_filter,来检查管理管理员公司ntroller),而不是必须在正常的控制器/视图的任何地方放置条件。

+0

听起来不错。这可以在Rails中使用吗?还是需要额外的宝石? – emurad 2011-06-06 12:40:55

+0

@emurad除了用于验证的设计之外,它是开箱即用的功能,这是一个宝石。 – Ant 2011-06-06 13:05:33

+3

除此之外,我通常在我的常规控制器文件夹中使用'class AdminController',它具有before_filter方法“require_admin”或类似方法,并且在名为'admin'的控制器中有一个子文件夹,其中包含控制器像'class Admin :: StoriesController << AdminController'。这样,所有的管理员控制器都是管理员专用的,您可以将任何其他共享功能添加到AdminController中。 – 2011-06-06 13:11:07

2

这取决于你的应用程序的性质,但有没有错与具有相同观点的用户管理功能;在显示某些部分之前,只需测试您的许可角色即可。

如果您确实需要仅限管理员界面,则可以为某些控制器和视图命名空间。还有其他的职位,与如何做到这一点处理,如The Rails Way - Namespaces

+1

让我们来看看像37cignals Basecamp这样的真正的应用程序吧。您认为他们的管理控制面板(他们在哪里管理用户,执行计费等)是否在控制器和视图方面位于用户界面旁边? – emurad 2011-06-06 12:28:55