Domanda

Ho una domanda su come fare qualcosa " The Rails Way " ;. Con un'applicazione con un lato pubblico e un'interfaccia di amministrazione qual è il consenso generale nella comunità di Rails su come farlo?

Spazi dei nomi, sottodomini o rinunciarvi del tutto?

È stato utile?

Soluzione

Non esiste un vero modo "Rails" " per le interfacce di amministrazione, in realtà - puoi trovare tutte le possibili soluzioni in una serie di applicazioni. DHH ha implicato che preferisce gli spazi dei nomi (con autenticazione HTTP di base), ma ciò è rimasto una semplice implicazione e non una delle opinioni ufficiali di Rails.

Detto questo, ho trovato di recente un buon successo con questo approccio (namespace + HTTP Basic). Sembra così:

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

Il condizionale su authenticate_or_request_with_http_basic attiva l'autenticazione HTTP di base in modalità produzione o quando si aggiunge ? admin_http = true a qualsiasi URL, in modo da poterlo testare nei test funzionali e aggiornando manualmente l'URL mentre navighi nel tuo sito di sviluppo.

Altri suggerimenti

In alcune applicazioni più piccole non credo sia necessario separare l'interfaccia di amministrazione. Basta utilizzare l'interfaccia normale e aggiungere la funzionalità di amministrazione per gli utenti che hanno effettuato l'accesso.

Nei progetti più grandi, andrei con uno spazio dei nomi. L'uso di un sottodominio non mi sembra giusto per qualche motivo.

Ho fatto una domanda in qualche modo simile. Amministrazione back-end nelle rotaie . Una delle risposte menzionava gli spazi dei nomi ed è quello che ho implementato.

Grazie a tutti coloro che hanno risposto alla mia domanda. Sembra che il consenso sia quello di utilizzare gli spazi dei nomi se lo si desidera in quanto non esiste un approccio Rails Way sponsorizzato da DHH. :)

Ancora una volta, grazie a tutti!

È sicuramente tardi per una risposta, ma avevo davvero bisogno di una risposta a questa domanda: come fare facilmente le aree di amministrazione?

Ecco cosa si può usare in questi giorni: Admin attivo , con La grande introduzione di Ryan Bates .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top