Aplicação Rails 4 Extranet e E-Commerce implementando Devise “Single Sign On” com “Active Admin”, “Comfy Mexican Sofa” e “Spree Commerce” {#welcome}
Este tutorial explica como implementar um aplicativo unificado usando um Devise para autenticar usuários admin e autenticação spree padrão para autenticar usuários spree.
Suposições e Dependências
Este tutorial assume que o sistema operacional em uso é Ubuntu 12.04 e que o Rails versão 4 está sendo usado (que é a versão mais recente no momento.
Este tutorial no digital ocean explica como instalar rails corretamente no Ubuntu usando RVM. Este tutorial também assume alguém entende a estrutura de arquivo unix padrão e pode encontrar o lançamento e digitar na linha de comando do unix, editar arquivos, bem como instalar o Ubuntu 12.04 LTS. Além disso, sempre que vir “localhost”, você pode substituir o nome do host ou endereço IP do seu host linux.
NOTA: O resultado disso é que você precisa de uma experiência mínima com o conceito de linha de comando do Linux como usado em VPS (servidores virtuais privados) etc. Esta familiaridade pode ser obtida facilmente em 30 minutos, talvez muito menos. É provável que você já possua essa familiaridade. **
Criar novo aplicativo Rails
Primeiro, precisamos criar um novo aplicativo Rails. Fazemos isso na linha de comando, conforme mostrado abaixo, ele fornecerá muitos resultados e, no caso abaixo, criaremos um aplicativo na pasta “unificado”.
<i class = “icon-file”> </i> Terminal
rails new unified
Mude para o diretório do aplicativo
<i class = “icon-file”> </i> Terminal
cd unified
Instalando “Comfy Mexican Sofa CMS”, “Active Admin” e “Spree Commerce”
“Comfy Mexican Sofa” é a joia de rubi que usaremos para fornecer a funcionalidade CMS para este aplicativo, “Active Admin” fornece a interface administrativa geral e “Spree” fornece a funcionalidade de carrinho de compras. Para instalar essas joias, nós as adicionamos ao Gemfile e depois as agrupamos. O pacote produzirá uma produção considerável.
<i class = “icon-pencil”> </i> .Gemfile
gem 'comfortable_mexican_sofa'
gem 'activeadmin', github: 'gregbell/active_admin'
gem 'spree', '2.1.0'
gem 'spree_auth_devise', :github => "spree/spree_auth_devise", :branch => "2-1-stable"
<i class = “icon-file”> </i> Terminal
bundle
Configurando o CMS “Sofá confortável mexicano”
Para configurar “Sofá mexicano confortável”, precisamos gerá-lo e executar as migrações
<i class = “icon-file”> </i> Terminal
rails g comfy:cms
rake db:migrate
Podemos iniciar o servidor agora para ver o cms.
<i class = “icon-file”> </i> Terminal
rails s
Você pode então visualizar a interface do cms admin em http: // localhost: 3000 / admin Ctrl + C para o servidor. Não queremos que o cms seja carregado no caminho / admin porque é onde o administrador ativo será carregado, portanto, precisamos editar o caminho de montagem do cms em config / routes.db . mudamos a linha confortável rota: cms admin ,: path => ‘/ admin’ para que o cms monte em / cms . Podemos então iniciar o servidor mais uma vez.
<i class = “icon-pencil”> </i> config / routes.rb
comfy_route :cms_admin, :path => '/cms'
<i class = “icon-file”> </i> Terminal
rails s -d
A interface de administração do cms estará disponível em http: // localhost: 3000 / cms
Configurando “Administrador Ativo”
Configurar o Active Admin simplesmente consiste em rodar o gerador e as migrações por enquanto.
<i class = “icon-file”> </i> Terminal
rails generate active_admin:install
rake db:migrate
O administrador ativo agora pode ser visualizado em http: // localhost: 3000 / admin
em seu config / initializers / active_admin.rb
config.before_filter do
params.permit!
end
Edite o inicializador CMS para usar a autenticação ActiveAdmin
module CmsDeviseAuth
def authenticate
unless current_admin_user
redirect_to '/admin/login'
end
end
end
config.admin_auth = 'CmsDeviseAuth'
Configurando “Spree Commerce”
Para configurar o spree primeiro, devemos gerá-lo.
<i class = “icon-file”> </i> Terminal
rails generate spree:install
Não queremos que o cms seja carregado no caminho / porque é onde o spree será carregado, portanto, precisamos editar o caminho de montagem do spree em config / routes.db . mudamos a linha de montagem Spree :: Core :: Engine,: at => ‘/’ para que o cms seja montado em / shop . Podemos então iniciar o servidor mais uma vez.
Precisamos gerar o usuário administrador.
<i class = “icon-file”> </i> Terminal
rails generate active_admin:install
rake db:migrate
Editar Gemfile gem 'spree_fancy', :git => 'git://github.com/spree/spree_fancy.git', :branch => '2-1-stable'
bundle install
bundle exec rails g spree_fancy:install
Reiniciar servidor
Configurar Git
Inicializar repositório
<i class = “icon-file”> </i> Terminal
git init
Edite .gitignore para que as alterações do banco de dados também sejam rastreadas comentando as linhas que ignoram o arquivo e o log do banco de dados.
<i class = “icon-pencil”> </i> .gitignore
# Ignore the default SQLite database.
#/db/*.sqlite3
#/db/*.sqlite3-journal
Configurando CSS e Javascript
Para impedir que o ActiveAdmin afete os estilos de nosso aplicativo principal e evitar o carregamento de folhas de estilo Spree e CMS em nosso aplicativo principal. Precisamos impedi-lo de carregar a árvore. Para fazer isso, editamos app / assets / css / application.css, substituindo require_tree. com as declarações de requerimento para o nosso css individual, neste caso monster.css que reside em app / assets / css /
<i class = “icon-pencil”> </i> app / assets / css / application.css
*= require monster
Para acelerar o tempo de carregamento, queremos desabilitar a depuração de ativos no ambiente de desenvolvimento. Fazemos isso fazendo a edição abaixo
<i class = “icon-pencil”> </i> config / environment / production.rb
config.assets.debug = false
Adicionar TinyMCE WYSIWYG
Para usar o TinyMCE, adicione-o a .Gemfile e edite o layout no CMS para usar rich_text para as páginas em vez de texto .
<i class = “icon-pencil”> </i> .Gemfile
gem 'tinymce-rails'
Localizando Layout, Parcial e Ativos necessários
<i class = “icon-file”> </i> Terminal
bundle show spree
bundle show spree_frontend
bundle show spree_fancy
bundle show comfortable_mexican_sofa
Teste
Agora você deve conseguir ver a interface de administração do CMS em http: // localhost: 3000 / cms
Você deve conseguir ver a interface activeadmin em http: // localhost: 3000 / admin
Você deve conseguir ver a interface activeadmin em http: // localhost: 3000 / shop