我有一个关于如何做某事的问题“The Rails Way”。对于具有公众参与方和管理界面的应用程序,Rails社区中关于如何执行此操作的一般共识是什么?

命名空间,子域名还是完全放弃它们?

有帮助吗?

解决方案

没有真正的“Rails方式”对于管理界面,实际上 - 您可以在许多应用程序中找到所有可能的解决方案。 DHH暗示他更喜欢名称空间(使用HTTP基本身份验证),但这仍然是一个简单的含义,而不是官方Rails意见之一。

那就是说,我最近用这种方法取得了很好的成功(命名空间+ HTTP Basic)。它看起来像这样:

routes.rb中:

map.namespace :admin do |admin|
  admin.resources :users
  admin.resources :posts
end

管理员/ users_controller.rb:

class Admin::UsersController < ApplicationController
  before_filter :admin_required
  # ...
end

application.rb中

class ApplicationController < ActionController::Base
  # ...

  protected
  def admin_required
    authenticate_or_request_with_http_basic do |user_name, password|
      user_name == 'admin' && password == 's3cr3t'
    end if RAILS_ENV == 'production' || params[:admin_http]
  end
end

authenticate_or_request_with_http_basic 的条件触发了生产模式下的HTTP Basic身份验证,或者当您将?admin_http = true 附加到任何URL时,您可以在功能测试中对其进行测试并在浏览开发站点时手动更新URL。

其他提示

在一些较小的应用程序中,我认为您不需要分离管理界面。只需使用常规界面并为登录用户添加管理功能。

在更大的项目中,我会使用命名空间。由于某种原因,使用子域名对我来说不合适。

我问了一个类似的问题。 导轨后端管理。其中一个答案提到了命名空间,这就是我实现的。

感谢所有回答我问题的人。看起来共识是使用名称空间,如果你想,因为没有DHH赞助的Rails Way方法。 :)

再次感谢所有人!

回复肯定迟到了,但我真的需要回答这个问题:如何轻松管理区域?

以下是目前可以使用的内容: Active Admin Ryan Bates的精彩介绍

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top