我想知道在创建完整的管理控制面板时Rails的方法是什么。完全成熟的我指的是一个真正的控制面板,可以在专业水平上使用,而不是个人/内部脚手架。
我不相信它存储在与用户界面相同的文件夹中,就像在博客截屏或Rails入门教程中所示!
我确定在任何地方都会使用相同的模型,但视图会是什么?
请详细说明。在Rails中开始我的第一个真实项目时,我不想使用我的PHP心态。
感谢。
答案 0 :(得分:4)
在这里,您可以找到管理管理界面的rails插件/引擎列表:
http://ruby-toolbox.com/categories/rails_admin_interfaces.html
我已经使用了很多(typus和rails_admin),一点也不差。
还要检查最近发布的ActiveAdmin
答案 1 :(得分:2)
这取决于您的应用程序的性质,但在与用户相同的视图中使用管理功能并没有错;只需在显示显示的某个部分之前测试您的权限角色。
如果您确实需要仅限管理员界面,则可以命名一些控制器和视图。还有其他帖子涉及如何执行此操作,例如The Rails Way - Namespaces
答案 2 :(得分:2)
正如前面的答案所暗示,命名空间对于将管理功能与其他用户功能完全分开是很有用的,例如:
# In your routes
namespace :admin do
resources :stories
resources :editors
#etc.
end
然后,您将所有管理控制器放在“admin”子文件夹中,并始终需要管理员才能访问它们:
# 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),而不是在普通的控制器/视图中放置条件。