Guest User

Untitled

a guest
Jan 14th, 2019
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. ### Set up a Spree backend only install
  2.  
  3. ```shell
  4. rails new store-backend
  5. ```
  6.  
  7. ### Gemfile
  8.  
  9. ```ruby
  10. gem 'spree_backend', github: 'spree/spree'
  11. gem 'devise'
  12. ```
  13.  
  14. ### Install Spree and Devise
  15.  
  16. ```
  17. rails g spree:install
  18.  
  19. rails g devise:install
  20. rails g devise User
  21.  
  22. bundle exec rake db:migrate
  23. ```
  24.  
  25. ### This should go in your User model
  26.  
  27. ```ruby
  28. include Spree::UserMethods
  29. has_and_belongs_to_many :spree_roles, class_name: 'Spree::Role', join_table: 'spree_role_users'
  30. ```
  31.  
  32. * Generate custom user set up for spree
  33.  
  34. ```
  35. rails g spree:custom_user User
  36. ```
  37.  
  38. * Change Spree.user class to User on initializer spree.rb
  39.  
  40. ```
  41. Spree.user_class = "User"
  42. ```
  43.  
  44. * Add fields to custom user
  45.  
  46. ```
  47. bundle exec rake db:migrate
  48. ```
  49.  
  50. * Remove both all.css and all.js from vendor/assets/javascript|stylesheets/spree/frontend/
  51.  
  52. ### Make sure your config/routes.rb look like this
  53.  
  54. ```ruby
  55. Rails.application.routes.draw do
  56. mount Spree::Core::Engine, :at => '/'
  57.  
  58. root to: "spree/admin/orders#index"
  59.  
  60. devise_for :users
  61. devise_scope :user do
  62. get '/login', :to => "devise/sessions#new"
  63. delete '/logout', :to => "devise/sessions#destroy"
  64. end
  65. end
  66. ```
  67.  
  68.  
  69. ### Point spree_signup_path to login page
  70.  
  71. ```ruby
  72. # since we don't need signup on a backend install
  73. def spree_signup_path
  74. main_app.login_path
  75. end
  76. ```
  77.  
  78. ### Create admin user via rails console
  79.  
  80. ```ruby
  81. user = User.create(email: "spree@example.com", password: "spree123")
  82. user.spree_roles << Spree::Role.find_or_create_by(name: "admin")
  83. ```
  84.  
  85. ### Deface admin layout template to add logout link
  86.  
  87. Create this file in app/overrides/spree/layouts/admin/inject_login_bar.html.erb.deface
  88.  
  89. ```
  90. <!-- replace_contents "[data-hook='admin_login_navigation_bar']" -->
  91.  
  92. <ul id="login-nav" class="inline-menu">
  93. <li><%= link_to('Edit', main_app.edit_user_registration_path) %></li>
  94. <li><%= link_to('Logout', main_app.destroy_user_session_path, :method => :delete) %></li>
  95. </ul>
  96. ```
Add Comment
Please, Sign In to add comment