Pergunta

Eu tenho uma pergunta sobre como fazer algo "The Way Rails". Com uma aplicação que tem um lado voltado para público e uma interface de administração que é o consenso geral na comunidade Rails sobre como fazê-lo?

Namespaces, subdomínios ou renunciar-los por completo?

Foi útil?

Solução

Não há real "Trilhos caminho" para interfaces de administração, na verdade - você pode encontrar todas as soluções possíveis em uma série de aplicações. DHH tem implícito que ele prefere namespaces (com autenticação HTTP básica), mas que se manteve uma implicação simples e não um dos trilhos oficiais Opiniões.

Dito isso, eu encontrei um bom sucesso com essa abordagem recentemente (namespacing + HTTP Basic). Parece que este:

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

O condicionada à gatilhos authenticate_or_request_with_http_basic o HTTP Básico auth no modo de produção ou quando você acrescentar ?admin_http=true a qualquer URL, para que você possa testá-lo em seus testes funcionais e atualizando manualmente o URL que você navegar em seu site de desenvolvimento.

Outras dicas

Em algumas aplicações menores Eu não acho que você precisa separar a interface de administração. Basta usar a interface regular e adicionar funcionalidades de administração para usuários logados.

Em projetos maiores, eu iria com um espaço de nomes. Usando um subdomínio não se sente bem para mim por alguma razão.

Eu fiz uma pergunta um pouco semelhante. backend Administration em trilhos . Uma das respostas mencionado namespaces e é isso que eu implementei.

Obrigado a todos que respondeu à minha pergunta. Parece que o consenso é usar namespaces se você quiser, como não há DHH patrocinado abordagem Rails Way. :)

Mais uma vez, agradece a todos!

Sua certamente atrasado para uma resposta, mas eu realmente precisava de uma resposta a esta pergunta: como fazer facilmente áreas de administração

Aqui está o que pode ser usado nos dias de hoje: Ativo Administrador , com Ryan Bates ótima introdução .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top