Frage

Ich habe eine Frage zu, wie etwas „The Rails Way“ zu tun. Bei einer Anwendung, die eine öffentlich zugängliche Seite hat und ein Admin-Interface, was der allgemeine Konsens in der Rails-Community ist, wie es zu tun?

Namespaces, Subdomains oder verzichten sie ganz?

War es hilfreich?

Lösung

Es gibt keinen wirklichen „Rails Weg“ für die Admin-Schnittstellen, eigentlich - Sie jede mögliche Lösung in einer Reihe von Anwendungen zu finden. DHH hat angedeutet, dass er Namespaces vorzieht (mit HTTP-Basic-Authentifizierung), aber das hat eine einfache Implikation bleibt und nicht einen der offizielle Rails Meinungen.

Das heißt, ich habe in letzter Zeit mit diesem Ansatz guten Erfolg gefunden (Namespacing + HTTP Basic). Es sieht wie folgt aus:

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

Die bedingte auf authenticate_or_request_with_http_basic löst die HTTP Basic Auth im Produktionsmodus oder wenn Sie ?admin_http=true an jede URL anhängen, so dass Sie es in Ihre Funktionstests testen und durch manuelles Aktualisieren der URL, wie Sie Ihre Entwicklung vor Ort zu sehen.

Andere Tipps

In einigen kleineren Anwendungen Ich glaube nicht, dass Sie das Admin-Interface trennen müssen. Verwenden Sie einfach die normale Schnittstelle und fügen Admin-Funktionen für eingeloggte Benutzer.

Bei größeren Projekten, würde ich mit einem Namespace gehen. Unter Verwendung einer Sub-Domain aus irgendeinem Grund für mich fühlt sich nicht richtig.

Ich fragte eine ähnliche Frage. Backend-Administration in Schienen . Eine der Antworten erwähnt Namespaces und das ist, was ich umgesetzt werden.

Vielen Dank an alle, die meine Frage beantwortet. Sieht aus wie der Konsens Namensraum verwenden, wenn Sie möchten, da es keine DHH Rails Way Ansatz gefördert. :)

Nochmals vielen Dank alle!

Sein sicherlich spät für eine Antwort, aber ich brauchte wirklich eine Antwort auf diese Frage: Wie leicht Admin-Bereiche tun

Hier ist, was kann in diesen Tagen verwendet werden: Aktive Admin , mit great intro Ryan Bates.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top