我使用rvm来安装jruby(1.5.6)并安装好我的所有宝石。我可以运行简单的rails任务,比如
script / runner'put 1'
并且输出很好。当我点击数据库时,我得到一个错误。我已经卸载/重新安装了activerecord-jdbcmysql-adapter gem,Jruby,rvm,JAVA_JDK。我已经正确设置了JRUBY_HOME和JAVA_HOME,但似乎没有任何效果。
有什么想法吗?
据我所知,我安装了Java JDK 1.6.0和1.5.0。 IT目前指向1.6.0。但由于所有其他宝石安装正确,我认为这完全是另一回事。
我在EC2上使用Ubuntu 10.04(64位)
带有RVM的Ruby 1.9.2非常棒! nohup:忽略输入
/opt/jruby/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:76:in establish_connection': Please install the jdbcmysql adapter:
gem install activerecord -jdbcmysql-adapter {{ 1}} establish_connection”
来自/opt/jruby/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:55:in (no such file to load -- active_record/connection_adapters/jdbcmysql_adapter) (RuntimeError)
from /opt/jruby/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:60:in
initialize_database'
来自/opt/jruby/lib/ruby/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:141:in establish_connection'
from /opt/jruby/lib/ruby/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:438:in
run'
来自/home/tesmar/rails/statsheet/config/environment.rb:19
来自/home/tesmar/rails/statsheet/config/environment.rb:39:in process'
from /opt/jruby/lib/ruby/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:113:in
require'
来自script / runner:3
答案 0 :(得分:1)
正如错误消息所示,您需要安装activerecord-jdbcmysql-adapter
gem。
您的执行环境可能与您的rvm环境不同。我已经看到这种情况发生在NetBeans等IDE上。
答案 1 :(得分:1)
你的gemfile怎么样?
我看起来像这样并且工作:
source 'http://rubygems.org'
gem 'rails', '3.0.4'
platforms :ruby do
gem 'mysql2'
end
platforms :jruby do
gem 'activerecord-jdbc-adapter'
gem 'jdbc-mysql', :require => false
end
答案 2 :(得分:0)
如果你在jRuby和MRI之间往返,你可以在你的Gemfile中添加这样的东西:
if defined?(JRUBY_VERSION)
gem 'jdbc-mysql'
gem 'activerecord-jdbc-adapter'
gem 'activerecord-jdbcmysql-adapter'
gem 'warbler'
else
gem 'mysql'
gem 'mongrel'
end
然后,在您的database.yml中添加如下内容:
development:
adapter: <%= defined?(JRUBY_VERSION) ? 'jdbcmysql' : 'mysql' %>
答案 3 :(得分:-2)
我明白了。在将所有rb文件手动复制到活动记录gem(来自activerecord-jdbcmysql和activerecord-jdbc gems的rb文件)之后,我不得不下载JAR文件。然后我将JAR文件放在/ opt / jruby / lib目录中,它可以工作!哇噢!