Использование API-карт google и рельсов 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» для широты). Но есть ошибка:
TypeError в BusinessesController # updatemap не может преобразовать символ в Integer (линия ошибки в @ business.latitude = PARAMS ([: бизнес] [: широта]) линия)
Я также попытался с
...
if @business.update_attributes(params[:business])
...
но ошибка та же. Что вызывает ошибку и как ее можно исправить?
К сожалению, та же ошибка. Вот PARAMS-хэш для информации: – user929062
{ "utf8" => "✓", "authenticity_token" => "Vc9QPHBQjnftzfzutfNpOyftX + eDVoFjUSzVs9M =", "бизнес" => { "широта" => "44,976565607846", «longitude» => «8.89413124999999»}, «commit» => «Save», «id» => «1»} – user929062
Кстати: также to_s.to_f или просто .to_f дает мне то же сообщение об ошибке. – user929062