2011-05-03 44 views
2

我正在使用Ruby on Rails 3,並試圖使用名稱空間類的has_one :through關聯。我閱讀關於關聯模型的official guide,但我不知道如何實現這一點。'has_one:through'使用名稱空間類的關聯

我有UserRelationshipGroup類和我想通過Relationship類關聯UsersGroups。另外,我想自動保存相關記錄並刪除關於組或用戶刪除的關係記錄。

我的文件系統是:

app/models/users/user.rb 
app/models/users/relationship.rb 
app/models/users/group.rb 

configs/routes.rb

namespace :users do 
    resources :users 
    resources :relationship 
    resources :groups 
end 

類(模型)聲明:

class Users::User < ActiveRecord::Base 
    ... 
end 

class Users::Relationship < ActiveRecord::Base 
    ... 
end 

class Users::Group < ActiveRecord::Base 
    ... 
end 

如何我必須編寫代碼協會上述模型文件?你有什麼建議嗎?


UPDATE

我的類(模型)具有以下屬性:

用戶

ID

FULL_NAME

...

關係

ID

USER_ID

GROUP_ID

集團

ID

名稱

+0

你的表看起來不錯,它應該使用這個設置。 – dombesz 2011-05-04 08:08:55

回答

4

您的路由命名空間與您的模型命名空間無關。

class Users::User < ActiveRecord::Base 
    has_many :relationships, :class_name=>"Users::Relationship", :dependent=>:destroy, :autosave=>true 
    has_many :groups, :class_name=>"Users::Group", :through=>:relationships 
end 

class Users::Relationship < ActiveRecord::Base 
    belongs_to :user, :class_name=>"Users::User" 
    belongs_to :group, :class_name=>"Users::Group" 
end 

class Users::Group < ActiveRecord::Base 
    has_many :relationsips, :class_name=>"Users::Relationship", :dependent=>:destroy, :autosave=>true 
end 
相關問題