我想将博客标签存储和更新到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作业时,标签数据被存储,甚至发生错误.无法更新数据.
根据Charles Nutter的说法,Duby是
一种使用Ruby语法和Java类型系统的静态类型语言.迪比支持所有Ruby的文字,使用本地类型推断(唯一的参数类型必须声明),并以最快的速度运行,如Java(因为它产生几乎相同的字节码).但随着invokedynamic的出现,Duby需要一个玩伴.
1.什么是invokedynamic,为什么Duby"需要一个玩伴"?
另一方面,朱比是
打算基本上像Duby,因为它使用Java的类型和Ruby的语法.但它利用新的invokedynamic操作码是100%动态的.Juby是一个动态的Duby,或者是一个带有Ruby语法的动态Java.理解起来并不难.
实际上很难理解.
有人可以详细说明这种区别是什么吗?
3.为什么我们需要(需要!)另一种与Ruby相关的语言?或者说,还有两种与Ruby相关的语言?
如何将哈希数组转换为.csv文件?
我试过了
CSV.open("data.csv", "wb") do |csv|
@data.to_csv
end
Run Code Online (Sandbox Code Playgroud)
但它是空白的
我有一个Rails 3.2.2应用程序,我希望使用JRuby 1.6.7(1.9.2模式)运行.
我有一个在MRI ruby 1.9.3中运行的示例应用程序,一个典型的请求在~40ms内返回:在36ms完成200 OK(浏览次数:27.5ms | ActiveRecord:8.2ms)
在JRuby下使用相同的请求可能会慢3到20倍,具体取决于页面.对于与上述相同的操作,需要~180ms:180ms内完成200 OK(浏览次数:153.0ms | ActiveRecord:24.0ms)
这是正常的性能差异吗?我已经读过JRuby与MRI的速度大致相等.结果保存在我的Mac和Windows服务器上(不幸的是,它需要运行).使用在Tomcat下运行的Warbler将其打包也同样缓慢.
以上时间来自为测试JRuby而创建的基本rails应用程序.在更复杂的应用程序上,时间甚至更远.在该应用程序上,有些页面上运行了更多的ruby代码.似乎页面越依赖于ruby,我观察到的性能差异就越大.我没有对JRuby进行调整,因为我不知道从哪里开始.
所以我的问题是:这是正常的吗?我该怎么做来调整JRuby?
我想安装一个gem,但是我收到以下错误:
Building native extensions. This could take a while...
ERROR: Error installing twitter-login:
ERROR: Failed to build gem native extension.
C:/nwcloud/jruby-1.7.2/bin/jruby.exe extconf.rb
NotImplementedError: C extension support is not enabled. Pass -Xcext.enabled=true to JRuby or set JRUBY_OPTS or modify .jrubyrc to enable.
Run Code Online (Sandbox Code Playgroud)
我也用同样的问题阅读了这个问题,但我甚至不知道如何使用这三个选项启用支持,因为我不知道如何传递-Xcext.enabled=true给JRuby或设置JRUBY_OPTS或修改.jrubyrc来启用.
任何人都可以帮我解决我的初学者问题吗?
我想介绍一下我的JRuby应用程序.对于MRI,我总是使用ruby-prof,但我认为这不适用于JRuby.我不想使用Java-profiler,因为它不会给我ruby行号.
有一个jruby教授?
在使用Jruby的时候,我收到了这条消息.
Complete Java stackTrace
java.lang.OutOfMemoryError: Java heap space
Run Code Online (Sandbox Code Playgroud)
怎么解决?
我对整个JRuby世界都很陌生.我在一个非常大的测试套件上使用RSpec.我希望能够经常运行规范,但JVM需要很长时间才能启动它,这将成为一个真正的时间流失.
有没有办法让JVM保持运行?或者通过JRuby让规格更快地运行的方法?
我正在尝试将整个文件夹添加到我的Rails应用程序的JRuby 1.5类路径中.在JRuby的维基提出以下建议:"......添加config目录到JRuby的类路径config/environment.rb:"
$CLASSPATH << "file:///#{File.expand_path(File.join(RAILS_ROOT, 'config'))}/"
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎不起作用.无论我是在Rails::Initializer.run块之前,之后还是之内放置它都没关系.无论如何,我得到:
/home/sean/src/sbruby/seo/config/environment.rb:45:NoMethodError: undefined method `<<' for nil:NilClass
/home/sean/apps/jruby/jruby-1.5.0/lib/ruby/gems/1.8/gems/rails-2.3.7/lib/rails/backtrace_cleaner.rb:2:NameError: uninitialized constant ActiveSupport::BacktraceCleaner
/home/sean/apps/jruby/jruby-1.5.0/lib/ruby/gems/1.8/gems/rails-2.3.7/lib/console_with_helpers.rb:5:NameError: uninitialized constant ApplicationController
Run Code Online (Sandbox Code Playgroud)
例如,我正在尝试在RAILS_ROOT被调用下添加一个文件夹resources/foobar,因此我将以下内容添加到environment.rb:
$CLASSPATH << "file:///#{File.expand_path(File.join(RAILS_ROOT, "resources", "foobar"))}/"
Run Code Online (Sandbox Code Playgroud)
同样的错误.
使用Rails将文件夹添加到JRuby类路径的正确方法是什么?
Ruby有“的普遍想法感实性 ”和“ falsiness ”。
Ruby 确实有两个特定的布尔对象类,TrueClass和FalseClass,其中单例实例分别由特殊变量true和表示false。
但是,真实性和虚假性不仅限于这两个类的实例,该概念是通用的,适用于Ruby中的每个对象。每个对象都是真实的或虚假的。规则很简单。特别是,只有两个对象是虚假的:
nil,的一个实例,NilClass以及false,的单例实例 FalseClass每个其他对象都是真实的。这甚至包括在其他编程语言中被认为是虚假的对象,例如
这些规则是语言内置的,并且不是用户定义的。没有to_bool隐式转换或类似的东西。
这是ISO Ruby语言规范的引文:
6.6布尔值
一个对象可以分为真对象或假对象。
只有false和nil是伪造的对象。false是该类的唯一实例
FalseClass(请参见15.2.6),false表达式 …