Ruby on rails 有没有办法通过去掉括号将Ruby中的数组转换为浮点?

Ruby on rails 有没有办法通过去掉括号将Ruby中的数组转换为浮点?,ruby-on-rails,ruby,arrays,solr,Ruby On Rails,Ruby,Arrays,Solr,我有一个小问题似乎很容易解决,但我似乎找不到解决办法。我正在使用Geocoder gem for Rails,通过以下方法: Geocoder.coordinates(params[:search]) 我得到一个数组,其中包含如下浮点数:[43.653226,-79.3831843] 我的问题是,是否有办法从数组中删除括号或将值转换为浮点值,以便输出为43.653226,-79.3831843 到目前为止,我最接近的解决方案是: a = Geocoder.coordinates(params[

我有一个小问题似乎很容易解决,但我似乎找不到解决办法。我正在使用Geocoder gem for Rails,通过以下方法:

Geocoder.coordinates(params[:search])
我得到一个数组,其中包含如下浮点数:
[43.653226,-79.3831843]

我的问题是,是否有办法从数组中删除括号或将值转换为浮点值,以便输出为
43.653226,-79.3831843

到目前为止,我最接近的解决方案是:

a = Geocoder.coordinates(params[:search])
然后通过在方法调用中执行此操作来分别获取每个浮点:

a[0] --> 43.653226
a[-1] --> -79.3831843
这似乎不起作用,因为我尝试使用的特定方法出现错误

我正在使用“太阳黑子solr”和“太阳黑子rails”gem来实现这一点,我正在尝试的是允许用户进入一个城市来查找用户,然后显示该城市附近半径为100200公里的用户

这是我的
user.rb
文件中的内容:

class User < ActiveRecord::Base

    searchable do
        text :city
        latlon(:location) { Sunspot::Util::Coordinates.new(latitude, longitude) }
    end

end
这一行似乎是导致问题的原因:
with(:location).near(*Geocoder.coordinates(params[:search]),:precision=>6)

最后,在我看来,这是搜索表单:

<%= form_tag users_path, class: "form-signin", role: "form", method: :get do %>

    <%= text_field_tag :search, params[:search], class: "form-control", placeholder:"Type in a location" %>

    <div><%= submit_tag "Search users", class: "btn btn-lg btn-primary btn-block", id: "home-search" %></div>

<% end %>

如果有人能帮我,那就太好了

这些值已经是浮点数,如果要将数组的内容用作方法调用的两个参数,则可以使用splat运算符(
*
),例如

或者分解数组并将新变量作为参数传递,例如:

lat, lng = [43.653226, -79.3831843]
method_call(lat,lng)
您可以使用“加入”: 例如


将返回以逗号分隔的数组。

您希望使用哪种Solr方法?你怎么称呼它?你在使用太阳黑子吗?@mdesantis我在使用太阳黑子,我正在尝试这样做:search=User.search做全文参数[:search]和(:location)。near(*Geocoder.coordinates(params[:search]),:precision=>6)end请将此信息添加到问题中好吗?其他用户希望更新他们的答案,因为这些信息对于回答您的问题很有用question@mdesantis我刚刚用更多信息更新了我的问题,我不认为(:location).near(*Geocoder.coordinates(params[:search]),:precision=>6)的行
有问题;使用带(:location.near(43.653226,-79.3831843,:precision=>6)的
时错误是否仍然存在?
?我已经尝试过splat操作符,我想可能我在solr中错误地使用了地理空间功能。您调用的方法需要什么样的参数??我刚刚更新了我的问题,加入了更多与我所问问题相关的信息
RSolr::Error::Http - 400 Bad Request Error: {'responseHeader'=>{'status'=>400,'QTime'=>2},'error'=>{'msg'=>'com.spatial4j.core.exception.InvalidShapeException: incompatible dimension (2) and values (dpz83dffmxps). Only 0 values specified','code'=>400}}
method_call(*[43.653226, -79.3831843]) is same as method_call(43.653226, -79.3831843)
lat, lng = [43.653226, -79.3831843]
method_call(lat,lng)
a = Geocoder.coordinates(params[:search])
a.join(", ");