기본적으로 ROR 가이드 http://guides.rubyonrails.org/association_basics.html#the-has_many-through-association을 따라 아래에 표시된 관계 모델을 작성합니다.그룹 관계를 통해 사용자에게 속한 문서 모델의 모든 인스턴스 나열
through 연결 때문에 @ user.trips는 사용자가 만든 여행과 사용자에게 속한 여행을 모두 제공한다고 생각했습니다. 그러나 콘솔에서 @user.trips.count
을 실행하면 결과는 사용자가 생성 한 트립의 수만입니다. '그룹'연결을 통해 사용자에게 속한 여행은 계산되지 않았습니다.
질문 : 사용자가 만든 여행과 사용자가 속한 여행을 모두 '그룹'을 통해 표시하려면 어떻게해야합니까?
사용자/show.html.erb
<% unless @user.all_trips.empty? %>
<% @user.all_trips.each do |trip| %>
<!-- Content -->
<% end %>
<% end %>
user.rb
class User < ActiveRecord::Base
has_many :group_trips, :through => :groups,
:source => :trip
has_many :trips, :dependent => :destroy
has_many :groups
def all_trips
self.trips | self.group_trips
end
end
trip.rb
class Trip < ActiveRecord::Base
belongs_to :user
belongs_to :traveldeal
has_many :groups
has_many :users, :through => :groups
end
group.rb
class Group < ActiveRecord::Base
belongs_to :trip
belongs_to :user
end
감사!
편집 : TSherif의 부분 해결 코드가 수정되었습니다. 편집 2 : all_trips 메소드가 수정되었습니다. 이 시점에서 모든 것이 나를 위해 작동하는 것처럼 보입니다.
, 나는 그것이 아마 주위를 변경하지 않는 더 좋은 생각 인 것 같아요 귀하의 질문에 너무 많은 코드. 자, 당신이 가진 것과 똑같은 문제가 있다면, 그들은 말할 수 없을 것입니다. – tsherif
다음 번에이를 염두에 두십시오. 나는 사람들이 일하는 해결책을 보았다면 그것이 도움이 될 것이라고 생각했다. – Huy