Ruby on rails 4 未保存轨道4坐标

Ruby on rails 4 未保存轨道4坐标,ruby-on-rails-4,mongoid,Ruby On Rails 4,Mongoid,我有一个模型 class Building include Mongoid::Document include Geocoder::Model::Mongoid field :address, :type => String, :default => "" field :location, :type => Array, spacial: {lat: :latitude, lng: :longi

我有一个模型

class Building
  include Mongoid::Document
  include Geocoder::Model::Mongoid

  field :address,            :type => String, :default => ""            
  field :location,           :type => Array, spacial: {lat: :latitude, lng: :longitude, return_array: true }

  ## Building index
  index({location: "2d"})

  def latitude
    location[1]
  end

  def longitude
    location[0]
  end

  def latitude=( lat )
    location[1] = lat
  end

  def longitude=( lng )
    location[0] = lng
  end
end
视图中的此窗体

= f.text_field :latitude
= f.text_field :longitude
这是控制器

...
def create
  @building = Building.new(building_params)

  respond_to do |format|
    if @building.save
      format.html { redirect_to @building, notice: 'Building was successfully created.' }
      format.json { render action: 'show', status: :created, location: @building }
    else
      format.html { render action: 'new' }
      format.json { render json: @building.errors, status: :unprocessable_entity }
    end
  end
end

private
  def building_params
    params.require(:building).permit(:address, :latitude, :longitude)
  end
...
纬度和经度填充在表单中,但当我更改值并保存它时,它不起作用,甚至数据库中的其他字段(如地址)也会更改。但它在控制台中工作得完美无缺

> b = Building.first
> b.latitude = -7.27094221115
> b.save
 => true

我认为参数的问题在于,从形式上看,你们有字符串纬度和经度,但需要浮点。

我必须在哪里解析它才能浮点?位置[1]=lat.to\u f,位置[0]=lng.to\u f不起作用,或者我没听明白你们的意思,如果你们在问关于日志的问题,看这个纬度=>-7.2696135864,经度=>112.70665740967您有需要浮动的字符串。显示控制器创建操作。尝试参数。要求:建筑。允许:地址。合并纬度:参数[:建筑][:纬度]。到,经度:参数[:建筑][:经度]。到如果不工作,请尝试添加到合并!像这样的?我需要一个输入文本来手动输入lat和lng