2
使用google maps API和rails 3.2.1我有页面允许将商业标记移动到地图上以更正它的位置。商业模式有经度和纬度(等等)。相关部分是:Rails错误:无法将符号转换为整数
<%= form_for :business, :url => { :action => "updatemap" }, :id => 'updatebutton' do |f| %>
<%= f.hidden_field :latitude %>
<%= f.hidden_field :longitude %>
<br />
<%= f.submit "Save" %>
<% end %>
方法updatemap是:
def updatemap
@business = Business.find(params[:id])
@business.latitude = params([:business][:latitude])
@business.longitude = params([:business][:longitude])
if @business.save!
redirect_to business_path(@business), :flash => { :success => "The business was updated!" }
else
render 'changemap', :flash => { :error => "An error occured." }
end
end
运行调试器,则params([:业务] [:纬度])而params([:业务] [:经度] )给出新地图坐标的正确值(例如,纬度为“45.273739”)。但有一个错误:
类型错误在BusinessesController#updatemap 不能转换成符号整数 (错误的线是@ business.latitude =参数([:业务] [:纬度])线路)
我也试图与
...
if @business.update_attributes(params[:business])
...
但错误是一样的。导致错误的原因是什么?如何纠正错误?
不幸的是有同样的错误。这里是PARAMS哈希信息: – user929062 2012-03-01 14:24:25
{ “UTF-8”=> “✓”, “authenticity_token”=> “Vc9QPHBQjnftzfzutfNpOyftX + eDVoFjUSzVs9M =”, “业务”=> { “纬度”=> “44.976565607846”, “经度”=> “8.89413124999999”}, “提交”=> “保存”, “ID”=> “1”} – user929062 2012-03-01 14:25:20
顺便说一句:还to_s.to_f或只是.to_f给了我同样的错误消息。 – user929062 2012-03-01 14:28:12