3

我正在开发具有以下模型的 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

我不明白为什么它甚至在寻找那个专栏。任何帮助,将不胜感激!

4

1 回答 1

2

确保您的组表有一个 user_id 或 owner_id 列,然后试试这个:

  class Group < ActiveRecord::Base
    has_and_belongs_to_many :users
    belongs_to :owner, :class_name => 'User'
  end
于 2012-02-03T14:50:05.700 回答