我正在与spree_auth_devise一起安装 Spree 。通过播种或运行命令创建管理员用户时遇到问题bundle exec rake spree_auth:admin:create
这是完整的错误消息:
ActiveRecord::StatementInvalid: Mysql2::Error: Unknown column 'roles.name' in 'where clause': SELECT COUNT(DISTINCT `spree_users`.`id`) FROM `spree_users` LEFT OUTER JOIN `spree_roles_users` ON `spree_roles_users`.`user_id` = `spree_users`.`id` LEFT OUTER JOIN `spree_roles` ON `spree_roles`.`id` = `spree_roles_users`.`role_id` WHERE `roles`.`name` = 'admin'
我已按照以下步骤安装 spree_auth_devise 并且可以确认迁移已创建并成功运行:
bundle exec rake spree_auth:install:migrations
bundle exec rake db:migrate
bundle exec rails g spree:auth:install
由于在seeds.rb 中运行此行,我收到错误消息:
Spree::Auth::Engine.load_seed if defined?(Spree::Auth)
运行时我收到相同的错误:
bundle exec rake spree_auth:admin:create
我也遵循了这些说明:
此时,如果您使用的是 spree_auth_devise,则需要在 config/initializers/spree.rb 中更改此行:
Spree.user_class = "Spree::LegacyUser"
对此:
Spree.user_class = "用户"