Ruby on Railsで横方向の祖父母をクエリするにはどうすればよいですか?
たとえば、次のモデルを設定しています。
ユーザー
class User < ActiveRecord::Base
has_many :registrations
end
登録
class Registration < ActiveRecord::Base
belongs_to :user
belongs_to :competition
end
コンペ
class Competition < ActiveRecord::Base
has_many :registrations
belongs_to :tournament
end
トーナメント
class Tournament < ActiveRecord::Base
has_many :competitions
end
だから私がしたいのは、特定のトーナメントに属する登録を持っているすべてのユーザーを見つけることです。これを行うために私が知っている唯一の方法は、すべてのユーザーを見つけ、各ユーザーをループしてから、各ユーザーに次のように個々の登録を照会することです...
<% @users.each do |user| %>
<% if user.registrations..joins(:competition).where("competitions.tournament_id = #{params[:tournament]}").count > 0 %>
print out user information...
<% end %>
<% end %>
これは本当の半分のように思えます-私は必要のないレコードを選択しているので、あなたは物事をどのように行うかを知っています、誰かがこれを達成するためのより良いもっとRailsyの方法を提案できますか?