gpt4 book ai didi

ruby-on-rails-3 - Rails 错误 : can't convert Symbol into Integer

转载 作者:行者123 更新时间:2023-12-04 05:55:57 28 4
gpt4 key购买 nike

使用 google maps API 和 rails 3.2.1 我有一个页面,允许在 map 上移动业务标记以更正它的位置。商业模式有纬度和经度(等等)。相关部分是:

<%= 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([:business][:latitude]) 和 params([:business][:longitude]) 给出了新 map 坐标的正确值(例如纬度的“45.273739”)。但是有一个错误:

BusinessesController#updatemap 中的类型错误
无法将符号转换为整数
(错误行是@business.latitude = params([:business][:latitude]) 行)

我也试过
...
if @business.update_attributes(params[:business])
...

但错误是一样的。导致错误的原因是什么,我该如何纠正?

最佳答案

您正在写 params([:business][:latitude])而不是 params[:business][:latitude] .这意味着 [:business]实际上是对 self 的方法调用, 而不是 params .大概这个代码所属的类有一个 []方法,但它需要一个整数而不是 :business .

关于ruby-on-rails-3 - Rails 错误 : can't convert Symbol into Integer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9517761/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com