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