2015-10-06 59 views
1

我有一類用戶,以及用戶組類:的has_many,通過 - 未定義的方法`relation_delegate_class'

class User < ActiveRecord::Base 
    has_many :group_memberships 
    has_many :users_groups, through: :group_memberships 

    ... 

class UsersGroup < ActiveRecord::Base 
    has_many :group_memberships 
    has_many :users, through: :group_memberships 

...和GroupMembership類加入他們的行列 -

class GroupMembership < ActiveRecord::Base 
    belongs_to :users, dependent: :destroy 
    belongs_to :users_groups, dependent: :destroy 

我的遷移這個樣子 -

class CreateUsersGroups < ActiveRecord::Migration 
    def change 
    create_table :users_groups do |t| 
    t.string :title 
    t.string :status 
    t.string :about 

    t.timestamps null: false 
    end 
    end 
end 

class CreateGroupMembership < ActiveRecord::Migration 
    def change 
    create_table :group_memberships do |t| 
     t.integer :user_id, index: true 
     t.integer :users_group_id, index: true 
     t.boolean :owner 
    end 
    end 
end 

所以user.group_memberships是完全高興,但user.users_groups返回一個錯誤 -

undefined method `relation_delegate_class' for Users:Module 

同樣,users_group.group_memberships是好的,但users_group.users回報完全相同的錯誤 -

undefined method `relation_delegate_class' for Users:Module 

...用戶模塊。我盯着這幾個小時,但我確定這是一個簡單的語法。有什麼問題?

回答

4

當使用belongs_to的,我相信你需要使用一個單一的格式: 所以不belongs_to :usersbelongs_to :user

class GroupMembership < ActiveRecord::Base 
    belongs_to :user, dependent: :destroy 
    belongs_to :writers_group, dependent: :destroy 
+0

是的,謝謝!只是看不到它。 – RADan

+0

@RADan有時我們只需要一雙額外的眼睛 – Roko

0

我相信,既然您使用「到」你將不得不使用:

user.group_memberships.users_groups

這是因爲用戶沒有users_groups,反之亦然。

而是通過group_memberships訪問users_groups。

相關問題