对模型没有的字段进行排序和搜索

时间:2011-04-04 10:24:13

标签: ruby-on-rails search sorting

我有一个HTML表格,我在其中显示来自特定模型的数据,但我还在HTML表格中显示了一个不属于该模型的列。这个专栏经过一些计算(在这个计算中我使用了3-4个表)。我想在该列上提供排序和搜索功能。任何人都知道最好的方法是什么?

更新:

主要问题是如果我在该列上提供排序/搜索,那么我必须从数据库中获取所有记录以进行计算,这不是一个好主意。

3 个答案:

答案 0 :(得分:1)

如果您正在寻找性能解决方案:只需在表格中添加新字段即可存储您的计算。

无论如何,如果不提取所有记录,就无法解决问题。

或者您可以使用JavaScript进行搜索和排序,但前提是项目不多。

答案 1 :(得分:0)

您可以对模型进行排序:

q_new.sort! { |x, y|
    y.creation_date <=> x.creation_date
}

creation_date是模型的任何字段或方法。

答案 2 :(得分:0)

我会在模型上创建一个虚拟资源,其中包含Ruby代码中的分类器。假设sum是您的虚拟财产。

def by_sum(options = {})
  @items = self.class.find(options)
  @items.sort! { |a,b| a.sum <=> b.sum }
end

在您的控制器中,您可以致电:

Item.by_sum({:where => "'foo' = 'bar'"})