#ruby-on-rails #ruby #ruby-on-rails-4 #spree
#ruby-on-rails #ruby #ruby-on-rails-4 #веселье
Вопрос:
У меня есть собственная таблица пользователей в моей модели данных, и я хочу выполнить аутентификацию для пользователей.
Я прочитал информацию об аутентификации на странице Spree и выполнил следующие действия.
Однако у меня возникают проблемы с этим, потому что кажется, что приложение работает с пользователями spree, а не с моими пользователями.
Здесь devise_scope на routes.rb;
devise_scope :usuario do
get '/login', :to => "devise/sessions#new"
get '/signup', :to => "devise/registrations#new"
delete '/logout', :to => "devise/sessions#destroy"
end
Если я прокомментирую один из этих путей, вход в систему все еще работает…
Authentication_helpers.rb:
module Spree
module AuthenticationHelpers
def self.included(receiver)
receiver.send :helper_method, :spree_login_path
receiver.send :helper_method, :spree_signup_path
receiver.send :helper_method, :spree_logout_path
receiver.send :helper_method, :spree_current_user
end
def spree_current_user
current_usuario
end
def spree_login_path
main_app.login_path
end
def spree_signup_path
main_app.signup_path
end
def spree_logout_path
main_app.logout_path
end
end
end
ApplicationController.send:include, Spree::AuthenticationHelpers
И spree.rb от инициализаторов:
# Configure Spree Preferences
#
# Note: Initializing preferences available within the Admin will overwrite any changes that were made through the user interface when you restart.
# If you would like users to be able to update a setting with the Admin it should NOT be set here.
#
# In order to initialize a setting do:
# config.setting_name = 'new value'
Spree.config do |config|
# Example:
# Uncomment to override the default site name.
config.site_name = "Smarket"
config.logo = "store/smarket.png"
end
Spree.user_class = "Usuario"
Rails.application.config.to_prepare do
require_dependency 'spree/authentication_helpers'
end
Что я должен сделать, чтобы работать со своей собственной таблицей, а также изменить формы входа и регистрации?
Ответ №1:
Я только что сделал то же самое для своей пользовательской модели в соответствии с руководством по пользовательской аутентификации spree без каких-либо проблем. Вы уверены, что выполнили все шаги?
Что касается изменения форм, вход в систему spree просто использует процесс входа в систему devise по умолчанию, поэтому вам нужно будет скопировать формы devise в ваше приложение и отредактировать их там. Смотрите описание на devise wiki.