3
我工作的一个Rails 3.1的应用程序,具有以下型号:用户/组关系has_and_belongs_to_many或has_many?
用户:
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
我不明白为什么它连看为那一栏。任何帮助,将不胜感激!
感谢antpaw。这似乎是向前迈出的一步(因为它不会再给我MySQL错误),但它仍然返回为零的@ group.owner.inspect。 – 2012-02-03 14:57:19
是否确定column owner_id不是空的,并且具有该id的用户位于用户表中? – antpaw 2012-02-03 15:09:28
你是对的!我实际上有“user_id”而不是“owner_id”。但现在当我尝试从另一端(@ user.ownerships.inspect)进来时,它再次寻找列“user_id”。 P.S.我在原始问题中更新了我的用户模型。 – 2012-02-03 15:15:30