rails 3按两个字段搜索和排序

时间:2014-02-17 14:03:20

标签: ruby-on-rails ruby-on-rails-3

我有一份不同职位和问题组别的问题清单
我如何找到一个id的所有问题,并选出一个最大的位置编号。

关闭

<%= @question = Question.maximum('position', :conditions => {'question_group_id' => question_group_id'}) %>

使用我得到的任何答案

#<Question:0x3fe85c0>

如何将其转化为我们可以阅读的内容

4 个答案:

答案 0 :(得分:0)

您可以使用以下查询执行此操作。这绝对适合您。

@question = Question.where('question_group_id = ?',question_group_id).order("position desc").first

答案 1 :(得分:0)

@question = Question.where(:question_group_id => question_group_id).order("position desc").first

答案 2 :(得分:0)

首先,我看到erb标记(<% %>),您执行的操作在您的控制器上会更好。

现在查询(在控制器中)应为

@question = Question.where(question_group_id: question_group_id).
  order("position desc").
  limit(1). #because you only need one record!
  first

答案 3 :(得分:0)

首先,我会将模型上的查询作为命名范围,而不是在Controller中。

鉴于此,在你的问题模型上:

scope :highest_position_by_question_group_id, lambda { |question_group_id| 
  where(question_group_id: question_group_id).order('position DESC').first
}

在您的控制器上:

@question = Question.highest_position_by_question_group_id(question_group_id)