2015-01-11 36 views
1

我有這兩個表:導軌 - HAS_ONE和belongs_to的結社

accounts 
    - user_id 

users 
    - account_id 

許多用戶都可以屬於一個帳戶,一個帳戶可以有完全的權限,一個擁有者。如果用戶擁有一個賬戶,那麼他們應該互相引用。我試圖找出如何建立這種關聯。下面是我有:

class Account < AR::Base 
    has_many :users 
    has_one :owner, class_name: 'User', foreign_key: :user_id 

這似乎是我的權利,但用戶類絕對不是:

class User < AR::Base 
    belongs_to :account 
    has_one :account 

的對象不能屬於並有一個在同一時間。我應該如何設置我的用戶類?

回答

2

以下應該工作,我認爲:

class Account < AR::Base 
    has_many :users 
    belongs_to :owner, class_name: 'User', foreign_key: :user_id 


class User < AR::Base 
    belongs_to :account 
    has_one :account, inverse_of: :owner 
+0

我不認爲解決它。我現在得到這個錯誤:'未定義的方法'更新?'爲#' –

+0

我將has_one更改爲'has_one:owned_account,class_name:'Account',inverse_of :: owner'。這解決了它。謝謝您的幫助。 –

+0

完美! 「未定義的方法」更新?「是因爲重複的關聯名稱;重命名它可以解決問題。 –