将索引中的meta_search gem与现有的geocoder gem search(rails) [英] Integrating meta_search gem in index with existing geocoder gem search (rails)

查看:159
本文介绍了将索引中的meta_search gem与现有的geocoder gem search(rails)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经使用地理编码器实现了基于位置的搜索,并且无法集成meta_search宝石。我试图将meta_search集成到我的 object_controller index 中,以允许用户通过对象:attributes 已经按位置搜索了。



我的object_controller:

  def索引
if params [:搜索] .present?
@objects = Object.near(params [:search],50,:order => distance).paginate(:page => params [:page],:per_page => 9)

@objects = Object.paginate(:page => params [:page],:per_page => 9)
end
end



任何想法如何最好地将@search集成到meta_search gem所需的索引?
$ b $以下是meta_search github建议的索引:

  def index 
@search = Article。搜索(params [:搜索])
@articles = @ search.all#加载所有匹配记录
#@articles = @ search.relation#检索关系,以延迟加载视图
#@articles = @ search.paginate(:page => params [:page])#谁不爱will_paginate?
end

非常感谢,

我会相信 geocoder 和<$> c $ c> meta_search 查询方法返回一个 ActiveRecord :: Relation 因此您应该能够链接它们:

  @objects = Object.near(params [:search],50,:order => distance).search(params [:search])。relation .paginate(:page => params [:page],:per_page => 9)

或者如果你需要搜索对象是分开的:

  @search = Object.near(params [:search],50, :order => distance).search(params [:search])
@objects = @ search.relation.paginate(:page => params [:page],:per_page => 9)


I have already implemented a location based search using geocoder and am having trouble integrating the meta_search gem. I'm trying to integrate meta_search into my object_controller index to allow users to filter and sort search results by an objects :attributes after they have already searched by location.

My object_controller:

def index 
  if params[:search].present?
   @objects = Object.near(params[:search], 50, :order => :distance).paginate(:page => params[:page], :per_page => 9)
  else
   @objects = Object.paginate(:page => params[:page], :per_page => 9)
  end
end

Any idea how best to integrate the @search into the index required by the meta_search gem?

Here is what the meta_search github recommends for the index:

def index
  @search = Article.search(params[:search])
  @articles = @search.all   # load all matching records
  # @articles = @search.relation # Retrieve the relation, to lazy-load in view
  # @articles = @search.paginate(:page => params[:page]) # Who doesn't love will_paginate?
end

Thanks so much,

Will

解决方案

I believe both the geocoder and meta_search query methods return an ActiveRecord::Relation therefore you should be able to chain them:

@objects = Object.near(params[:search], 50, :order => :distance).search(params[:search]).relation.paginate(:page => params[:page], :per_page => 9)

or if you need the search object to be separate:

@search = Object.near(params[:search], 50, :order => :distance).search(params[:search])
@objects = @search.relation.paginate(:page => params[:page], :per_page => 9)

这篇关于将索引中的meta_search gem与现有的geocoder gem search(rails)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆