2

我有以下兩種模式,用戶..Rails的ActiveRecord的雙重協會

class User < ActiveRecord::Base 
    has_and_belongs_to_many :sites 
end 

..和網站:

class Site< ActiveRecord::Base 
    has_and_belongs_to_many :users 
end 

到現在爲止它的罰款。它的工作原理非常簡單。 現在我想介紹「主要用戶」到網站。我想補充「primary_user_id」的網站,並試圖添加第二個聯想:

class Site< ActiveRecord::Base 
has_and_belongs_to_many :user 

# my new association that doesn't work... 
has_one :primary_user, :class_name => "User", :conditions => ['id = ?', '{self.primary_user_id}'] 
end 

它不喜歡它... ...現在我知道我可以僞造此只需添加一個方法「primary_user」來該網站和這將工作,但我的問題是,是否有可能用戶ActiveRecord協會和如何?

回答

1

has_and_belongs_to_many很棘手,大多數人已經離開它並使用has_many through => model。 順便說一句 - '到目前爲止它的罰款。它的工作原理非常簡單。「是所有事情的開始。當你真正開始使用它們時,它們的表現是如何計數的,因此你可能會發現has_many更容易處理。

這些鏈接將幫助:

http://paulbarry.com/articles/2007/10/24/has_many-through-checkboxes

http://thoughtsincomputation.com/posts/checkboxes-with-has_many-through

http://my.opera.com/durrantm/blog/2011/07/24/rails-simple-form-with-has-many-through-hmt-relationship

https://github.com/romanvbabenko/nested_has_many_through(嵌套寶石)。