has_many 関係を使用してフィルタリングされたオブジェクトでジオコーダー gem を動作させようとしています。
そのようです
user.rb
has_one :profile
has_many :roles
name:string
profile.rb
belongs_to :user
latitude,latitude:float, address:string, city:string
role.rb
belongs_to :user
name:string
私が抱えている問題は、役割をフィルタリングして id => 3 と言う必要があることです
だから私たちは持っています
@limitrole = User.includes(:profile, :roles).where('roles.id' => 3)
これは、限られた役割のオブジェクトを返します。ジオコードを含むプロファイルを取得します
@profiles = @limitrole.collect { |user| user.profile }
これは、ユーザーの役割に限定されたアドレスのオブジェクトを返します
しかし、これはうまくいきません
@findlocations = @profiles.near('city, country', 20) (city and country being arbitrary values)
それでもこれはうまくいく
@findlocations = Profile.near('city, country', 20)
@profiles は Profile (両方のオブジェクト) と同じである必要があります。@profiles がフィルター処理されているだけです。
これを機能させるにはどうすればよいですか?