后端管理系统设置的Rails最佳实践



我们有一个网站,我们有一个后端管理界面,和一个前端显示我们的信息。我们正在使用设计来保护身份验证。

后端应该允许对我们的模型对象进行普通的CRUD类型编辑。视图和布局也与前端完全不同。在Rails 3中实现这一点的最佳实践是什么?

我们的两个方法是:

  1. admin视图文件夹包含所有视图特定代码,控制器文件夹中的admin文件夹包含所有控制admin特定访问的控制器。
  2. 具有一组视图和控制器的条件逻辑系统,使用if语句检查用户是否处于管理模式。

哪一个是更推荐的,或者如果有其他我们错过的方法,请告诉我

第一个解决方案更好,但是对于这些情况,创建了namespaces,最佳实践是在需要区分用户站点和管理区域时使用名称空间。点击这里阅读更多信息

你的目录结构应该是这样的:

controllers/
     |--admin/
        |--posts_controller.rb

在你的路由中,你把所有你需要的东西放在admin命名空间中:

namespace :admin do
  resources :posts, :comments
end

您的控制器应该有一个admin文件夹,并且在admin区域中的控制器看起来像:

class Admin::PostsController < ApplicationController
end

你还应该在你的视图中有一个admin文件夹,在那里你放置各自的视图:

views/
   |--admin/
        |--posts/
             |--index.html.erb
             |--...

您也可以命名您的模型,但这取决于您的需要,当您需要使用相同的名称有不同的模型时,这是很好的。例如,如果您需要为管理用户提供不同的表,为普通用户提供不同的表。我个人不会使用模型命名空间,只有在非常合理的情况下。

第二个选项可能会让人很头疼,你会迷失在if语句中,我完全不建议这么做

最新更新