0
我將舊的應用程序從rails 2.3.2移動到2.3.18,ruby 1.8.7-p72到1.8.7-p374 。 (然後在那之後,以紅寶石1.9.3和導軌3)從rails 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主動記錄文檔,它看起來像我的示例就像他們顯示的一些示例...也許我有一個導致問題的寶石?從堆棧跟蹤中看不出來。