administração de back-end em Ruby on Rails
-
01-07-2019 - |
Pergunta
Eu gostaria de construir uma infra-estrutura administrativa rápida e suja real para um aplicativo Ruby on Rails Eu tenho ligado a no último minuto. Eu olhei ActiveScaffold e simplificou e acho que eles são ambos muito atraente e eles devem ser simples para chegar correndo, mas eu não entendo muito bem como configurar um ou outro como uma página de administração backend. Eles parecem concebidos para funcionar como padrão do Ruby on Rails geradores / andaimes para a criação de front-ends visíveis com nome MVC-tabela de correspondência.
Como você cria um admin_players de interface quando os jogadores já está em uso e você quer evitar, tanto quanto possível, afetando qualquer um dos seus arquivos relacionados?
O show, editar e índice do recurso original não são usuable para o administrador.
Solução
Eu acho que namespaces é a solução para o problema que você tem aqui:
map.namespace :admin do |admin|
admin.resources :customers
end
O que vai criar rotas admin_customers
, new_admin_customers
, etc.
Em seguida, dentro do diretório app/controller
você pode ter um diretório admin
. Dentro do seu diretório admin, criar um controlador de admin:
./script/generate rspec_controller admin/admin
class Admin::AdminController < ApplicationController
layout "admin"
before_filter :login_required
end
Em seguida, criar um controlador de clientes de administração:
./script/generate rspec_controller admin/customers
E fazer este inhert do seu ApplicationController:
class Admin::CustomersController < Admin::AdminController
Este irá procurar pontos de vista em app/views/admin/customers
e esperam um layout em app/views/layouts/admin.html.erb
.
Você pode então usar qualquer plugin ou código que você realmente gosta de fazer sua administração, agilizar, ActiveScaffold, qualquer que seja pessoalmente eu gosto de usar resourcecs_controller
, uma vez que poupa muito tempo se você usar um RESTO arquitetura de estilo, e forçar-se por esse caminho pode economizar muito tempo em outros lugares. Embora se você herdou a aplicação que é um ponto discutível agora.
Outras dicas
Do confira active_admin em https://github.com/gregbell/active_admin .
Eu tenho usado simplificada bastante extensa.
Para obter Streamline trabalhando você crie seus próprios controladores - assim você pode realmente executá-lo completamente à parte do resto de sua aplicação, e você ainda pode executá-lo em uma pasta separada 'admin' e namespace que pode ser fixada com .
Aqui é o controlador de clientes a partir de um aplicativo recente:
class CustomersController < ApplicationController
layout 'streamlined'
acts_as_streamlined
Streamlined.ui_for(Customer) do
exporters :csv
new_submit_button :ajax => false
default_order_options :order => "created_at desc"
list_columns :name, :email, :mobile, :comments, :action_required_yes_no
end
end