作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想我在 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
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'
最佳答案
有时 Arel 会给出类似的错误,当作用域操作符不是类似 SQL 的顺序时,例如尝试在 hass 之前调用 select("..") 。另外,我不确定在这样的请求中是否允许多个拥有,所以尝试
q = q.have(['(option_sum > ? AND option_sum < ?)', 5, 10])
关于sql - 多个 'having' 子句炸毁了 Rails 3/Arel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4295974/
我是一名优秀的程序员,十分优秀!