您好我是ROR开发人员并使用rails 3.2.13和Postgres数据库。
我有两种模式:
Question
attr_accessible :category, :is_active, :question_text, :question_type_id, :survey_id,
:user_id
has_many :abusive_questions
并且
AbusiveQuestion
attr_accessible :question_id, :user_id, :ipaddress, :posted_by
belongs_to :question
由此我想得到AbusiveQuestion,其数量大于特定值(例如:5)。
我从rails命令
执行了以下操作AbusiveQuestion.count(:group=>"abusive_questions.question_id")
得到了
=> {1=>1, 5=>3, 3=>1}
对于这个结果,键是question_id
,值是计数但是,我想得到的问题是哪个值大于特定的动态值(例如:2)。
请帮帮我。
答案 0 :(得分:1)
我认为您希望在join
上Question
AbusiveQuestion
然后使用select
和having
来获取您想要的内容。
类似的东西:
AbusiveQuestion.select('abusive_questions.*, count(question.id) as question_count').
joins(:questions).
group('abusive_questions.question_id').
having('count(abusive_questions.question_id) > 5')
答案 1 :(得分:0)
您可以使用having方法。 http://guides.rubyonrails.org/active_record_querying.html#having
x = YOUR_DYNAMIC_COUNT
AbusiveQuestion.group(:question_id).having("count_all > ?", x).count