gpt4 book ai didi

ruby - # 的未定义方法 `bytesize'

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

我想将博主标签存储和更新到 GAE 中的数据存储区。当我运行该代码时,出现此错误:

javax.servlet.ServletContext log: Application Error
/base/data/home/apps/yet-another-problem/1.334886515480009498/WEB-INF/gems/gems/sinatra-0.9.2/lib/sinatra/base.rb:45:in `each': undefined method `bytesize' for #<Hash:0x86684c> (NoMethodError)

代码

class Labels
class LabelData
include Bumble
ds :blog_element_labels
end

def update
response = URLFetch.get($label_url)
result = response.to_s
result_headless = result.gsub("listLabels(",'')
pure_result = result_headless.gsub(");",'')
json_to_yaml = YAML::load(pure_result)['entry']['category']

json_to_yaml.each do |label|
@label = LabelData.find(:blog_element_labels => label['term'])
@label = LabelData.create(:blog_element_labels => label['term']) if @label.nil?
end
end
end

并由 cron job 执行 '/job'

get '/job' do
@labels = Labels.new
@labels.update
end

问题出在哪里?请教我。

但是第一次运行cron job时,标签数据被存储,甚至出现那个错误。无法更新数据。

最佳答案

我认为您遇到的问题与此处讨论的问题相同:error happens when I try "all" method in datamapper

在您的例子中,Sinatra 试图获取 @lavels.update 的返回值并将其转换为字符串以显示给用户。

试试看是否能解决问题:

get '/job' do
@labels = Labels.new
@labels.update
"Labels Updated"
end

你的返回值现在是一个字符串,所以你不应该得到错误。

关于ruby - #<Hash> 的未定义方法 `bytesize',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1123666/

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