Correctness of using methods in model that joins other models in Rails
===

Maybe the title is confusing, but I didn't know how to explain my doubt.  

Say I have the following class methods that will be helpful in order to do chainings to query a model called Player.  A Player belongs_to a User, but if I want to fetch Players from a particular village or city, I have to fetch the User model.

    def self.by_village(village)
      joins(:user).where(:village => "village")
    end
    
    def self.by_city(city)
      joins(:user).where(:city => "city")
    end

Let's say I want to fetch a Player by village but also by city, so I would do...

    Player.by_city(city).by_village(village).

  

This would be doing a join of the User twice, and I don't think that is correct.. Right? 

So my question is: What would be the correct way of doing so?