2016-10-08 8 views
0

Итак, я попытался добавить ссылку для входа в мое приложение Spree Rails, выполнив следующую документацию: http://guides.spreecommerce.org/developer/authentication.html Однако мне не удалось получить ссылку в моем приложении. enter image description hereимеет проблемы с ссылкой для входа в систему, используя Spree

Я создал файл app/overrides/auth_login_bar.rb после документации, добавив в файл следующий код.

Deface::Override.new(:virtual_path => "spree/shared/_nav_bar", 
 
    :name => "auth_shared_login_bar", 
 
    :insert_before => "li#search-bar", 
 
    :partial => "spree/shared/login_bar", 
 
    :disabled => false, 
 
    :original => 'eb3fa668cd98b6a1c75c36420ef1b238a1fc55ad')

Я также обновил конфиг/routes.rb файл:

Rails.application.routes.draw do 
 

 
    # This line mounts Spree's routes at the root of your application. 
 
    # This means, any requests to URLs such as /products, will go to Spree::ProductsController. 
 
    # If you would like to change where this engine is mounted, simply change the :at option to something different. 
 
    # 
 
    # We ask that you don't use the :as option here, as Spree relies on it being the default of "spree" 
 
    mount Spree::Core::Engine, at: '/' 
 
     
 
     # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html 
 

 
     devise_scope :person do 
 
     get '/login', :to => "devise/sessions#new" 
 
     get '/signup', :to => "devise/registrations#new" 
 
     delete '/logout', :to => "devise/sessions#destroy" 
 
     end 
 

 
end

Я, кажется, не найти, как это исправить.

+0

Вы также можете переопределить весь вид – uzaif

ответ

1

Ваш override файл на app/overrides/auth_login_bar.rb сообщает Шпрее, чтобы вставить частичный вид под названием spree/shared/login_bar в навигационную панель. Вы создали это частичное в своих представлениях?

Вот мой частичный (написано в Haml), расположенный в spree/shared/_login_bar.html.haml

- if spree_current_user 
    %li= link_to(Spree.t(:logout), destroy_spree_user_session_path, method: :delete) 
- else 
    %li= link_to(Spree.t(:login), login_path) 
    %li= link_to(Spree.t(:signup), signup_path) 

Можно также удалить method: :delete со второй линией, чтобы сделать его get запроса, который я думаю, как Spree настроен Теперь.

1

Если ваше приложение является новым или вы используете новую модель пользователя, используйте gem/extension spree_auth_devise, который предоставит все аутентификации уровня пользователя, совместимые со всеми версиями spree.

 Смежные вопросы

  • Нет связанных вопросов^_^