Question

J'ai une question sur la façon de faire quelque chose de "The Rails Way". Avec une application qui a un côté public et une interface d’administration, quel est le consensus général dans la communauté Rails sur la façon de le faire?

Espaces de noms, sous-domaines ou les abandonner complètement?

Était-ce utile?

La solution

Il n'y a pas de véritable "manière Rails". pour les interfaces d'administration, en fait - vous pouvez trouver toutes les solutions possibles dans un certain nombre d'applications. DHP a laissé entendre qu'il préférait les espaces de noms (avec authentification HTTP Basic), mais cela reste une simple implication et non l'un des avis officiels de Rails.

Cela dit, cette approche a récemment donné de bons résultats (namespacing + HTTP Basic). Cela ressemble à ceci:

routes.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

La condition relative à authenticate_or_request_with_http_basic déclenche l'autorisation HTTP Basic en mode de production ou lorsque vous ajoutez ? admin_http = true à un URL afin de pouvoir le tester dans vos tests fonctionnels. et en mettant à jour manuellement l'URL lorsque vous naviguez sur votre site de développement.

Autres conseils

Dans certaines applications plus petites, je ne pense pas que vous ayez besoin de séparer l'interface d'administration. Il suffit d’utiliser l’interface standard et d’ajouter des fonctionnalités d’administrateur pour les utilisateurs connectés.

Dans les projets plus importants, je choisirais un espace de noms. Utiliser un sous-domaine ne me convient pas pour une raison quelconque.

J'ai posé une question un peu similaire. Administration d’arrière-plan dans des rails . Une des réponses a mentionné les espaces de noms et c’est ce que j’ai implémenté.

Merci à tous ceux qui ont répondu à ma question. Il semble que le consensus est d'utiliser des espaces de noms si vous le souhaitez, car il n'y a pas d'approche Rails Way sponsorisée par la DHP. :)

Encore merci à tous!

Il est sûrement tard pour une réponse, mais j'avais vraiment besoin d'une réponse à cette question: comment faire facilement les zones d'administration?

Voici ce qui peut être utilisé de nos jours: Administrateur actif , avec La grande intro de Ryan Bates .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top