Il n'y a pas de véritable "Rails" pour admin interfaces, en fait - vous pouvez trouver toutes les solutions possibles dans un certain nombre d'applications. DHP a laissé entendre qu'il préfère les espaces de noms (avec l'authentification HTTP de Base), mais qui est restée un simple implication et non pas l'une de l'officiel des Rails Opinions.
Cela dit, j'ai trouvé un bon succès avec cette approche dernièrement (namespacing + HTTP de Base). Il ressemble à ceci:
les itinéraires.rb:
map.namespace :admin do |admin|
admin.resources :users
admin.resources :posts
end
admin/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
Le conditionnel authenticate_or_request_with_http_basic
déclenche le HTTP Basic auth dans le mode de production ou lorsque vous ajoutez des ?admin_http=true
à n'importe quelle URL, de sorte que vous pouvez le tester dans vos tests fonctionnels et en mettant à jour manuellement l'URL que vous naviguez sur votre site de développement.