0

我正在与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 = "用户"

4

1 回答 1

0

最后我的问题很简单。我不应该包含 spree_auth_devise。以下是正确的步骤:

gem 'spree', github: 'spree/spree', :branch => '2-3-stable'

$ bundle install

$ rails g spree:install --migrate=false --sample=false --seed=false

config/initializers/spree.rb by changing this line: Spree.user_class = "Spree::User" to this: Spree.user_class = "User"

$ rails g spree:custom_user User

$ rake db:migrate
于 2014-08-11T22:45:57.640 回答