30 votes

Les Rails De Chemin - Des Espaces De Noms

J'ai une question sur la façon de faire quelque chose de "Les Rails de Chemin". Avec une application qui dispose d'un côté et une interface d'administration qu'est-ce que le consensus général dans la communauté Rails sur la façon de le faire?

Les espaces de noms, des sous-domaines ou de renoncer purement et simplement?

40voto

Ben Scofield Points 4950

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.

5voto

psst Points 51

Dans certaines petites applications je ne pense pas que vous avez besoin de séparer l'interface d'admin. Juste l'utilisation de l'interface et ajouter admin fonctionnalités pour les utilisateurs enregistrés.

Dans les grands projets, je voudrais aller avec un espace de noms. À l'aide d'un sous-domaine ne vous sentez pas bien de moi pour une raison quelconque.

2voto

srboisvert Points 7214

J'ai demandé un peu semblable question. Backend d'Administration dans les rails. L'une des réponses mentionnées espaces de noms et c'est ce que j'ai mis en place.

0voto

Carlos Points 507

Merci à tous ceux qui ont répondu à ma question. Ressemble le consensus est d'utiliser des espaces de noms si vous voulez qu'il n'y a pas de DHP parrainé Rails de la Voie. :)

Encore une fois, merci à tous!

0voto

Adit Saxena Points 648

Ses sûrement en retard pour répondre, mais j'ai vraiment besoin d'une réponse à cette question: comment le faire facilement en zone d'admin?

Voici ce qui peut être utilisé de nos jours: Admin Active, avec Ryan Bates est super intro.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X