Я перемещаю старое приложение с рельсов 2.3.2 - 2.3.18, ruby 1.8.7-p72 - 1.8.7-p374 , (а затем после этого, рубин 1.9.3 и рельсы 3)Обновление от рельсов 2.3.2 до 2.3.18, дающее ActiveRecord :: StatementInvalid для простого запроса
Мой первый запрос, который я пробовал, который должен быть простым, дает мне проблемы. В консоли:
?> User.find(:all, :joins => { :sms_users => :join_smsuser_campaigns },
:conditions => { :sms_users => {
:join_smsuser_campaigns => {
:campaign_id => 18 } } })
Выглядит довольно просто?
Это мне дает:
ActiveRecord::StatementInvalid: ActiveRecord::StatementInvalid
from /Users/decker/.rvm/gems/ruby-1.8.7-p374/gems/activerecord-2.3.18/lib/active_record/base.rb:2363:in `sanitize_sql_hash_for_conditions'
from /Users/decker/.rvm/gems/ruby-1.8.7-p374/gems/activerecord-2.3.18/lib/active_record/base.rb:2079:in `map'
from /Users/decker/.rvm/gems/ruby-1.8.7-p374/gems/activerecord-2.3.18/lib/active_record/base.rb:2345:in `each'
from /Users/decker/.rvm/gems/ruby-1.8.7-p374/gems/activerecord-2.3.18/lib/active_record/base.rb:2345:in `map'
from /Users/decker/.rvm/gems/ruby-1.8.7-p374/gems/activerecord-2.3.18/lib/active_record/base.rb:2345:in `sanitize_sql_hash_for_conditions'
from /Users/decker/.rvm/gems/ruby-1.8.7-p374/gems/activerecord-2.3.18/lib/active_record/base.rb:2361:in `sanitize_sql_hash_for_conditions'
from /Users/decker/.rvm/gems/ruby-1.8.7-p374/gems/activerecord-2.3.18/lib/active_record/base.rb:2079:in `map'
from /Users/decker/.rvm/gems/ruby-1.8.7-p374/gems/activerecord-2.3.18/lib/active_record/base.rb:2345:in `each'
from /Users/decker/.rvm/gems/ruby-1.8.7-p374/gems/activerecord-2.3.18/lib/active_record/base.rb:2345:in `map'
from /Users/decker/.rvm/gems/ruby-1.8.7-p374/gems/activerecord-2.3.18/lib/active_record/base.rb:2345:in `sanitize_sql_hash_for_conditions'
from /Users/decker/.rvm/gems/ruby-1.8.7-p374/gems/activerecord-2.3.18/lib/active_record/base.rb:2274:in `sanitize_sql'
from /Users/decker/.rvm/gems/ruby-1.8.7-p374/gems/activerecord-2.3.18/lib/active_record/base.rb:1528:in `merge_conditions'
from /Users/decker/.rvm/gems/ruby-1.8.7-p374/gems/activerecord-2.3.18/lib/active_record/base.rb:1526:in `each'
from /Users/decker/.rvm/gems/ruby-1.8.7-p374/gems/activerecord-2.3.18/lib/active_record/base.rb:1526:in `merge_conditions'
from /Users/decker/.rvm/gems/ruby-1.8.7-p374/gems/activerecord-2.3.18/lib/active_record/base.rb:1838:in `add_conditions!'
from /Users/decker/.rvm/gems/ruby-1.8.7-p374/gems/activerecord-2.3.18/lib/active_record/base.rb:1721:in `construct_finder_sql'
from /Users/decker/.rvm/gems/ruby-1.8.7-p374/gems/activerecord-2.3.18/lib/active_record/base.rb:1582:in `find_every'
from /Users/decker/.rvm/gems/ruby-1.8.7-p374/gems/activerecord-2.3.18/lib/active_record/base.rb:619:in `find'
from (irb):6>>
Просто чтобы подтвердить, что я могу реально сделать тип пользователя:
?> User.find(1)
=> #<User id: 1, date_created: "2008-01-06 17:22:12", email: "[email protected]", name: "First Last", phone_number: "1234567890", last_communication: "2012-11-09 22:34:43">
Таким образом, это выглядит, как я могу создавать пользовательские объекты.
Любая идея, почему этот простой запрос не работает? Я прочитал 2.3.18 activerecord documenation, и похоже, что мой пример похож на пример, который они показывают ... Может быть, у меня есть камень, вызывающий проблему? Это не очевидно из трассировки стека.