Rails 3/Arelにバグが見つかりましたが、誰かが私の問題を明確にしてから修正したり、報告する。 (submitter_id:整数、option_count:整数) 複数の 'having'句が吹き飛ばされるRails 3/Arel
私が使用しているコード:
q = Question.where(:submitter_id => 1)
q = q.having(['option_sum > ?', 5])
q = q.having(['option_sum < ?', 10])
q = q.select("#{Question.table_name}.*, MAX(#{Question.table_name}.option_count) AS option_sum")
q.to_sql
q
これが吹くまで質問モデルと非常にシンプルなアプリ、オン
- with:
ArgumentError: wrong number of arguments (2 for 1) from ~/.rvm/gems/ruby-1.9.2-p0/bundler/gems/arel-f092ae544f58/lib/arel/select_manager.rb:94:in `having' from ~/.rvm/gems/ruby-1.9.2-p0/bundler/gems/rails-76053fe4d12b/activerecord/lib/active_record/relation/query_methods.rb:193:in `build_arel' from ~/.rvm/gems/ruby-1.9.2-p0/bundler/gems/rails-76053fe4d12b/activerecord/lib/active_record/relation/query_methods.rb:162:in `arel'
「having」節の1つを取って問題を解決し、適切なSQL。
コメントをいただければ幸いです。 ArelとRails 3はエッジバージョンであり、上記のエラーのリビジョンが記載されています。
これは灯台のバグとしては最適ではないでしょうか? (テストの結果) –
Brady、この問題に対する満足のいく答えを見つけましたか?私はまだそれに走っていて、メソッドを持つメソッドに結合することは、私の状況でひどく役立つものではありません。 – Andrew
申し訳ありません、Andrew、いいえ。しかし、GearHeadのソリューションは私のために働いた – bouchard