Ruby on rails Rails后端管理系统设置的最佳实践?

Ruby on rails Rails后端管理系统设置的最佳实践?,ruby-on-rails,admin,Ruby On Rails,Admin,我们有一个网站,我们有一个后端管理界面,和一个显示我们的信息的前端。我们正在使用Desive来保护身份验证 后端应该允许对模型对象进行常规CRUD类型的编辑。视图和布局也与前端完全不同。在Rails 3中实现这一点的最佳实践是什么 我们的两个方法是: 管理员视图文件夹包含所有视图特定的代码,控制器文件夹中的管理员文件夹包含所有控制管理员特定访问的控制器 一种有一组视图和控制器的条件逻辑系统,带有检查用户是否处于管理模式的if语句 更推荐哪种方法,或者如果我们错过了另一种方法,请告诉我。第一种解决

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

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

我们的两个方法是:

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

  • 更推荐哪种方法,或者如果我们错过了另一种方法,请告诉我。

    第一种解决方案更好,但是对于这些情况,创建了
    名称空间
    ,最佳做法是在需要区分用户站点和管理区域时使用名称空间。阅读更多关于它的信息

    您的目录结构应如下所示:

    controllers/
         |--admin/
            |--posts_controller.rb
    
    在路由中,您将需要的所有内容放入管理命名空间:

    namespace :admin do
      resources :posts, :comments
    end
    
    您的控制器应该有一个
    admin
    文件夹,管理区域中的控制器如下所示:

    class Admin::PostsController < ApplicationController
    end
    
    您也可以为您的模型命名名称空间,但这取决于您的需要,当您需要具有相同名称的不同模型时,这是很好的。例如,如果管理员用户需要不同的表,普通用户需要不同的表。就个人而言,我不会使用模型名称空间,只是在非常合理的情况下

    我认为第二种选择会让人头疼,你会迷失在if语句中,我不建议你这么做

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