JRuby 1.6.3 и Rails 3.1rc5 и activerecord-3.1.0.rc5 и destroy_all - PullRequest
1 голос
/ 28 июля 2011

Я могу создать возможность запуска миграций с JRuby 1.6.3 и Rails 3.1rc5 и в консольном сеансе создать простой объект Role, подобный следующему:

jruby-1.6.3 :001 > role = Role.new(:name => "Admin")
   (1.0ms)   SELECT name
 FROM sqlite_master
 WHERE type = 'table' AND NOT name = 'sqlite_sequence'

 => #<Role id: nil, name: "Admin", created_at: nil, updated_at: nil> 

Все хорошо, но когда язапустить

Role.destroy_all

Я получаю следующую трассировку стека:

jruby-1.6.3 :003 > Role.destroy_all
ArgumentError: wrong number of arguments (3 for 2)
    from /Users/paulcowan/.rvm/gems/jruby-1.6.3/gems/activerecord-3.1.0.rc5/lib/active_record/base.rb:470:in `find_by_sql'
    from /Users/paulcowan/.rvm/gems/jruby-1.6.3/gems/activerecord-3.1.0.rc5/lib/active_record/relation.rb:111:in `to_a'
    from /Users/paulcowan/.rvm/gems/jruby-1.6.3/gems/activerecord-3.1.0.rc5/lib/active_record/relation.rb:289:in `destroy_all'
    from org/jruby/RubyBasicObject.java:1684:in `__send__'
    from /Users/paulcowan/.rvm/gems/jruby-1.6.3/gems/activerecord-3.1.0.rc5/lib/active_record/base.rb:438:in `destroy_all'
    from (irb):3:in `evaluate'
    from org/jruby/RubyKernel.java:1093:in `eval'
    from org/jruby/RubyKernel.java:1419:in `loop'
    from org/jruby/RubyKernel.java:1205:in `catch'
    from org/jruby/RubyKernel.java:1205:in `catch'
    from /Users/paulcowan/.rvm/gems/jruby-1.6.3/gems/railties-3.1.0.rc5/lib/rails/commands/console.rb:45:in `start'
    from /Users/paulcowan/.rvm/gems/jruby-1.6.3/gems/railties-3.1.0.rc5/lib/rails/commands/console.rb:8:in `start'
    from /Users/paulcowan/.rvm/gems/jruby-1.6.3/gems/railties-3.1.0.rc5/lib/rails/commands.rb:40:in `(root)'
    from org/jruby/RubyKernel.java:1047:in `require'
    from script/rails:6:in `(root)'

Казалось бы, все не так между activerecord-3.1.0.rc5 и jruby.

Кто-нибудь может помочь с этим?

Ответы [ 3 ]

2 голосов
/ 03 августа 2011

Был достигнут некоторый прогресс на фронте activerecord-jdbc-адаптера, и теперь вы можете настроить свою работу сейчас, используя основную ветку activerecord-jdbc-adapter. Просто добавьте следующее в ваш Gemfile:

gem 'activerecord-jdbc-adapter',: git => 'https://github.com/nicksieger/activerecord-jdbc-adapter.git

Я бы порекомендовал делать это только в том случае, если вы не можете дождаться окончательного гема activerecord-jdbc-adapter и, конечно, не в производстве.

1 голос
/ 28 июля 2011

Вы правы. Еще не все правильно с activerecord-jdbc-adapter и Rails 3.1. Я работаю над этим и надеюсь, что он будет готов к тому времени, когда Rails 3.1 выйдет в финал.

0 голосов
/ 28 июля 2011

Не нужно ли указывать условия для этого destroy_all?

например

http://apidock.com/rails/ActiveRecord/Base/destroy_all/class

...