gpt4 book ai didi

ruby - Heroku Ruby NoMethodError string.capitalize

转载 作者:数据小太阳 更新时间:2023-10-29 07:48:47 26 4
gpt4 key购买 nike

我使用以下代码根据第一个字母对位置进行分组。

移动 Controller :

def index
@locations = Location.all.group_by{|l| l.name[0].capitalize.match(/[A-Z]/) ? l.name[0].capitalize : "#"}
end

查看:

<% @locations.keys.sort.each do |starting_letter| %>
<%= starting_letter %>
<% @locations[starting_letter].each do |location| %>
<%= location.name %>
<% end %>
<% end %>

在我的本地机器上一切正常,但 heroku 不喜欢它并不断向我显示此错误:

NoMethodError (undefined method `capitalize' for 66:Fixnum):
app/controllers/mobile_controller.rb:13:in `search'
app/controllers/mobile_controller.rb:13:in `search'

我该如何解决这个问题?

提前致谢

解决方案:将我的 Heroku Stack 更新为 Ruby 1.9。

最佳答案

您的本地计算机可能在 Ruby 1.9 上运行,而您的 Heroku 应用程序在 1.8 上运行。

在 Ruby 1.8 中,调用 String#[] 将为您提供字符代码(一个数字),而 Ruby 1.9 将为您提供一个包含第一个字符的字符串。

# Ruby 1.8
"test"[0]
# => 116

# Ruby 1.9
"test"[0]
# => "t"

您可以使用 l.name[0..0] 来解决这个问题,或者切换到 Heroku 上的 Ruby 1.9 堆栈。

关于ruby - Heroku Ruby NoMethodError string.capitalize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7028209/

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