A maneira Rails - Namespaces
-
02-07-2019 - |
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?
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 .