Как лучше всего проверить, входит ли группа «Администратор» в группы пользователей (используя отношения has_and_belong_to_many) в Rails 3? - PullRequest
0 голосов
/ 10 февраля 2012

Я просто хочу проверить, входит ли группа «Администратор» в группы пользователей. Модель пользователя и группы имеет отношение has_and_belong_to_many.

У меня была система, работающая нормально с рельсами в режиме разработчика, но когда я попытался перейти к производству, эта строка в моем "игровом" контроллере не работала:

   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 для управления пользователями.

1 Ответ

0 голосов
/ 10 февраля 2012

Удалите из сообщения об ошибке, что таблица groups не существует в базе данных db_production.

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

Возможно, на рабочем сервере произошла ошибка миграции.

...