주어진 사용자에 대한 모든 게시물의 압축을 풉니 다. 내가 그 (것)들을 맞은 ㄴ다는 것을 확실하지 않다, 그래서 나는 잘 설명 할 것이다. 사용자는 일부 그룹에 소유권과 회원권을 가지고 있습니다. 사용자는 그룹의 회원 또는 소유자 일 수 있지만 둘 다일 수는 없습니다. 모든 게시물에는 사용자 및 그룹의 ID가 있습니다. 문제는 아래에 언급 된 관계 때문이라고 생각합니다. 어떻게 해결할 수 있습니까? 하나 더. 또한 다른 사용자가 사용자 그룹에 게시 한 모든 게시물을 찾아야합니다. 즉, 나는 그룹을 지나쳐야 만한다.Ruby on Rails 3에서 3 개의 테이블에 합치기
/-- Owner ---\
User -- -- Group -- Post
| \-- Member --/ |
|_______________________________|
class User < ActiveRecord::Base
has_many :posts, :dependent => :destroy
has_many :ownerships, :foreign_key => "user_id", :dependent => :destroy
has_many :memberships, :foreign_key => "user_id", :dependent => :destroy
# Problem with these two? I think so.
has_many :groups, :through => :memberships, :source => :user
has_many :groups, :through => :ownerships, :source => :user
class Ownership < ActiveRecord::Base
belongs_to :users, :class_name => "User"
belongs_to :groups, :class_name => "Group"
has_many :posts, :through => :groups, :source => :posts
class Membership < ActiveRecord::Base
belongs_to :users, :class_name => "User"
belongs_to :groups, :class_name => "Group"
has_many :posts, :through => :groups, :source => :posts
class Group < ActiveRecord::Base
has_many :posts, :dependent => :destroy
class Post < ActiveRecord::Base
belongs_to :user
belongs_to :groups
오류는 라인에서 오는 :
_groups = user.groups
오류를 다음과 같이 모델 소유권의 사용자 :
소스 연결을 (를) 찾을 수 없습니다. 'has_many : groups, : through :> : 소유권, : source =>'을 시도하십시오. 사용자, 그룹 또는 게시 중 하나입니까?
나는 (아직) 문제를 이해하지 못했습니다. 예상대로 작동하지 않는 것은 무엇입니까? – mkro
@mkro 죄송합니다. 방금 끝에 추가 한 부분이 하나 빠졌습니다. 회원 자격 및 소유권을 통해 사용자에게 속한 그룹의 모든 게시물을 수집해야합니다. –
@mkro 좀 더 자세히 설명 드리겠습니다. 이렇게하면 오류가 발생합니다. _groups = user.groups 모델 소유권의 소스 연결을 찾을 수 없습니다. 'has_many : groups, : through => : ownerships, : source =>'을 시도하십시오. 사용자, 그룹 또는 게시 중 하나입니까? –