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