Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何处理太阳黑子轨道中缺失的场?_Ruby On Rails_Sunspot_Sunspot Rails - Fatal编程技术网

Ruby on rails 如何处理太阳黑子轨道中缺失的场?

Ruby on rails 如何处理太阳黑子轨道中缺失的场?,ruby-on-rails,sunspot,sunspot-rails,Ruby On Rails,Sunspot,Sunspot Rails,我使用的是sunspot/rails版本2。它工作得很好,但我不知道如何处理缺少的字段。如果我没有纬度和经度,此代码将映射到0,0(靠近非洲): 我尝试使用两个搜索块,每个搜索块都有不同的条件,但太阳黑子只使用第一个可搜索块。我想做的是让缺少位置的东西仍然可以搜索,只是不能按位置搜索。我想到了一个解决办法,添加一个名为has_location或其他的布尔字段,然后在执行地理搜索时始终检查它。很糟糕,但它应该可以工作。是的,通常在可选条件之后我会进行if检查: searchable do te

我使用的是sunspot/rails版本2。它工作得很好,但我不知道如何处理缺少的字段。如果我没有纬度和经度,此代码将映射到0,0(靠近非洲):


我尝试使用两个搜索块,每个搜索块都有不同的条件,但太阳黑子只使用第一个可搜索块。我想做的是让缺少位置的东西仍然可以搜索,只是不能按位置搜索。

我想到了一个解决办法,添加一个名为
has_location
或其他的布尔字段,然后在执行地理搜索时始终检查它。很糟糕,但它应该可以工作。

是的,通常在可选条件之后我会进行if检查:

searchable do
  text      :resume, :stored => true
  text      :city, :boost => 5
  latlon(:geo) { Sunspot::Util::Coordinates.new(latitude, longitude) } if latitude && longitude
  # other conditions if needed
  with(:another_field, condition_var) if condition_var
end

我在太阳黑子文档中找不到“何时”。你知道在哪里可以找到它吗?很抱歉,它应该是用找到的。
searchable do
  text      :resume, :stored => true
  text      :city, :boost => 5
  latlon(:geo) { Sunspot::Util::Coordinates.new(latitude, longitude) } if latitude && longitude
  # other conditions if needed
  with(:another_field, condition_var) if condition_var
end