Skip to content

Instantly share code, notes, and snippets.

@candidosales
Created September 20, 2014 21:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save candidosales/f276780a24b77e340bb3 to your computer and use it in GitHub Desktop.
Save candidosales/f276780a24b77e340bb3 to your computer and use it in GitHub Desktop.
Observações sobre Spree na implementação de front-end

Dificuldades

  • Já podia iniciar por padrão com PostgreSQL
  • Pra quê o uso do sufixo "decorator" em tudo que é para acrescentar algo? Não basta o .class_eval?
  • Organização dos assets na extension, o problema de ter as pastas sobrepostas. As pastas criadas por um extension, por padrão já devia sobrepor;
  • O caminho para usar meus JS são muito mal organizados, gostaria que fossem todos dentro da própria extension;
  • O caminho das imagens, também, gostaria que fossem pegas todas dentro da própria extension;
  • Devise.secret_key: Devia ser apresentado na documentação como resolver isso;
  • Instalação da internacionalização (ainda não consegui resolver no Windows, no Ubuntu rodou bacana);
  • Após instalação do spree_i18n é necessário refazer o seed:
  • Não é necessário carregar na extension o jquery e jquery_ujs pois o spree core já carrega;
  • Realmente é importante carregar o js no head pois o spree gera javascript dinamicamente no meio do body (má prática);
  • Retirar as 3 linhas abaixo do root/vendor/assets/javascript/all.js
#!javascript
	//= require_tree .
	//= require spree/frontend/spree_serveja
	//= require spree/frontend/spree_i18n

  • Colocar somente as duas ultimas linhas no js com nome de sua extension que vc criou;
  • Reposicionar o carregamento dos js da sua extension na view de layout (root/sua_extension/app/views/layouts/spree_application.html.erb), depois de carregar o analytics - Dessa forma o js sera carregado somente ao final de todo carregamento. !!-Não precisa disso-!!
#!html
	<html lang="<%= I18n.locale %>"><!--<![endif]-->
<head data-hook="inside_head">
  <%= render :partial => 'spree/shared/head' %>
</head>
<body class="<%= body_class %>" id="<%= @body_id || 'default' %>" data-hook="body">

  <%= render :partial => 'spree/shared/header' %>

    <div class="row" data-hook>

      <%= breadcrumbs(@taxon) %>

      <%= render :partial => 'spree/shared/sidebar' if content_for? :sidebar %>

      <div id="content" class="<%= !content_for?(:sidebar) ? "small-12 columns" : "small-8 medium-9 columns" %>" data-hook>
        <%= flash_messages %>
        <%= yield %>
      </div>

      <%= yield :templates %>

    </div>

  <%= render :partial => 'spree/shared/footer' %>

  <%= render :partial => 'spree/shared/google_analytics' %>

  <script>
    Spree.api_key = <%= raw(try_spree_current_user.try(:spree_api_key).to_s.inspect) %>;
  </script>
</body>
</html>

#!ruby
config.i18n.default_locale = 'pt-BR'

  • Remover o turbolinks do Gemfile (atrapalha)

Libs que possivelmente podem ser usadas

  • spree_related_products
  • spree_banner
  • spree_product_assembly
  • spree_hstore
  • spree_sort_products
  • spree_sitemap

Clonar

  • Executar os comandos iniciais:
  • rake railties:install:migrations
  • rake db:migrate
  • rake db:seed
  • rake spree_sample:load

Atualizar

  • bundle exec rake railties:install:migrations
  • rake db:migrate
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment