如何在 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
所以我想做的是找到所有拥有属于特定Tournament的注册的用户。我知道的唯一方法是找到所有用户,遍历每个用户,然后像这样查询每个用户的个人注册......
<% @users.each do |user| %>
<% if user.registrations..joins(:competition).where("competitions.tournament_id = #{params[:tournament]}").count > 0 %>
print out user information...
<% end %>
<% end %>
这似乎是一种真正的半知半解的做事方式,因为我正在选择我不需要的记录,任何人都可以建议一种更好的更 Railsy 方式来实现这一点吗?