小编tkn*_*knv的帖子

#Hash>的未定义方法`bytesize'

我想将博客标签存储和更新到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)
Run Code Online (Sandbox Code Playgroud)

代码

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
Run Code Online (Sandbox Code Playgroud)

并由cron job运行'/ job'

get '/job' do
  @labels = Labels.new
  @labels.update
end
Run Code Online (Sandbox Code Playgroud)

问题出在哪儿?请教我.

但是当第一次运行cron作业时,标签数据被存储,甚至发生错误.无法更新数据.

ruby google-app-engine jruby sinatra

21
推荐指数
1
解决办法
2万
查看次数

如何使用XML :: Twig获取内容?

我的目标是start_tag_handler(见下文)在找到/ tag 时获取apps/ titlecontent (请参阅下面的示例XML).appstitle

end_tag_handler在找到/ tag 时获取apps/ logscontent .appslogs

但相反,此代码返回null并退出.

这是用于解析的Perl代码(使用XML :: Twig)###:

    #!/usr/local/bin/perl -w

    use XML::Twig;
    my $twig = XML::Twig->new(
                start_tag_handlers =>
                  { 'apps/title' => \&kicks
                  },
                twig_roots =>
                  { 'apps' => \&app
                  },
                end_tag_handlers =>
                  { 'apps/logs' => \&bye
                  }
                );
    $twig -> parsefile( "doc.xml");

    sub kicks {
        my ($twig, $elt) = @_;
        print "---kicks--- \n";
        print $elt -> text;
        print …
Run Code Online (Sandbox Code Playgroud)

xml perl xml-twig

6
推荐指数
1
解决办法
4596
查看次数

为什么XML :: Twig不调用我的end_tag_handler?

我尝试为每个标记调用子例程,但从end_tag_handlers不调用它.
我的目标是这个序列:

--- ---序列
<auto>调用\&loading.
<apps><title>通话\&kicks.
<apps><logs>通话\&bye.
<apps>通话\&app.
<apps><title>通话\&kicks.
<apps><logs>通话\&bye.
<apps>通话\&app.
</auto>通话\&finish.→ 没有打电话.

temp.pl:

#!/usr/local/bin/perl -w

use XML::Twig;
my $twig = XML::Twig->new(
            start_tag_handlers => 
              { 'auto' => \&loading
              },
            twig_handlers =>
              { 'apps/title' => \&kicks,
                'apps/logs' => \&bye
              },
            twig_roots =>
              { 'apps' => \&app
              }, …
Run Code Online (Sandbox Code Playgroud)

xml perl xml-twig

3
推荐指数
1
解决办法
243
查看次数

标签 统计

perl ×2

xml ×2

xml-twig ×2

google-app-engine ×1

jruby ×1

ruby ×1

sinatra ×1