基本的に ROR ガイドhttp://guides.rubyonrails.org/association_basics.html#the-has_many-through-associationに従って、以下に示すような関係モデルを作成しました。
スルー アソシエーションにより、@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 メソッドを修正しました。この時点で、すべてがうまくいくようです。