Aplicação Rails 4 Extranet e E-Commerce que implementa Devise “Single Sign On” com “Active Admin”, “Comfy Mexican Sofa” e “Spree Commerce”

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