has_and_belongs_to_many или has_many для отношений пользователь / группа? - PullRequest
3 голосов
/ 03 февраля 2012

Я работаю над приложением Rails 3.1, которое имеет следующие модели:

Пользователь:

class User < ActiveRecord::Base
  has_and_belongs_to_many :groups
  has_many :ownerships, :class_name => 'Group'
end

Группа:

class Group < ActiveRecord::Base
  has_and_belongs_to_many :users
  has_one :owner, :class_name => 'User'
end

Между ними есть таблица соединения, а в таблице групп также есть столбец "user_id".Я ожидал, что смогу написать это в моем groups_controller.rb

@group = Group.find(params[:id])
foo = @group.owner

, но когда я это сделаю, у меня появится следующая ошибка:

Mysql2::Error: Unknown column 'users.group_id' in 'where clause': SELECT  `users`.* FROM `users`  WHERE `users`.`group_id` = 1 LIMIT 1

Я не понимаюпочему он даже ищет эту колонку.Любая помощь будет оценена!

1 Ответ

2 голосов
/ 03 февраля 2012

убедитесь, что в таблице групп есть столбец user_id или owner_id и попробуйте это:

  class Group < ActiveRecord::Base
    has_and_belongs_to_many :users
    belongs_to :owner, :class_name => 'User'
  end
...