0

我只想检查“管理员”组是否在用户组中。用户和组模型具有 has_and_belong_to_many 关系。

我让系统在开发人员模式下使用 rails 运行良好,但是当我尝试传递到生产环境时,我的“游戏”控制器中的这条线不起作用:

   if current_user.groups.where(:name => "Admin") != []

ActiveRecord::StatementInvalid (Mysql2::Error: Table 'db_production.groups' doesn't exist: SHOW FIELDS FROM `groups`)

此外,相同的查询在 rails 控制台中也可以正常工作:

irb(main):001:0> User.find(1).groups.where(:name =>
  User Load (0.2ms)  SELECT `users`.* FROM `users` WHERE `users`.`i
  Group Load (0.4ms)  SELECT `groups`.* FROM `groups` INNER JOIN `groups_users` ON `groups`.`id` = `groups_users`.`group_id` WHERE `groups_users`.`user_id` = 1 AND `groups`.`name` = 'Admin'
=> false

该服务器具有 Rails 3.2.0,并使用 Phusion Passenger 版本 3.0.11 和 Apache。我使用设备 gem 进行用户管理。

4

1 回答 1

0

从错误消息中清除数据库groups中不存在表db_production

Mysql2::Error: Table 'db_production.groups doesn't exist

您的迁移可能在生产服务器中失败。

于 2012-02-10T08:24:56.933 回答