2011-03-18 20 views
0

我有一个服务,我查询,我得到的数据我过滤并创建一个记录数组。如何列使用will_paginate排序,其中数据是一个记录阵列,而不是一个模型

除非我错过了某些东西,ActiveResource :: Base不具备资格,因为对服务的访问不是通过休息,而且我无法使用交付的原始数据。

我在表中显示数据并使用will_paginate来分页数据。但我目前还没有结婚。

我确实需要对列以及分页进行排序。

我发现了两个版本的ujs_sort_helper。

我想明白了: - http://javathehutt.blogspot.com/2009/06/mo-simple-sortable-tables-in-rails.html

有什么其他在轨3做了什么?或者是其中一个ujs_sort_helper软件包就是他正确的路线。

在数据刷新方面,这是一个dashbaord。多个数据源将处理各种DIV。

另外,我是一个Rails noob。但不是编程noob。

回答

1

如果您愿意,您可以使用meta_search的排序方式。 我喜欢它,因为它也可以用meta_where过滤得非常简单。

您还可以通过将ajax的数据远程属性添加到'a.sort_link'(我已通过javascript完成该操作)来制定行为。

+0

所以,我把结果放到一个sqlite数据库中。数据是足够静态的,我可以有一个表的数据和另一个只有时间戳。每N分钟只重建一次。 我想我可以只设置id字段来自动填充,并在其他字段上设置一个索引。我希望这会更有效率。 这是一个痛苦。而不是添加一个创建的所有记录,我必须设置每个字段,并保存!因为我需要从其他数据源捕获的id值。 – mpechner 2011-03-19 01:25:48

0

我会欢迎ujs_sort_helper的维护者发表评论。只是一个错误在这里和那里的rails 3版本的代码。现在ujs_sort_helper适用于我。

我没有做的是在这个包上创建另一个分支。我通过电子邮件将文件发送给作者。

排序顺序现在将符号而不是符号与字符串进行比较。

def sort_order(column, initial_order='asc') 
    #safe since to_sm on a sym is a nil operation. At least for now. 
    if session[@sort_name][:key].to_sym == column.to_sym 
     session[@sort_name][:order].downcase == 'asc' ? 'desc' : 'asc' 
    else 
     initial_order 
    end 
    end 

我们通过当前订单值设置图标。排序条款应该是相反的。因此,向下显示按升序显示的列表箭头,但'url'设置为以降序重新显示表格。

我不知道:q符号应该用于什么。

def sort_header_tag(column, options = {}) 
    options[:initial_order].nil? ? initial_order = "asc" : initial_order = options[:initial_order] 
    key = session[@sort_name][:key].to_sym 
    order = sort_order(column, initial_order) 
    caption = options.delete(:caption) || column.to_s.titleize 

    url = { :sort_key => column, :sort_order => order, :filter => params[:filter]} 
    url.merge!({:q => params[:q]}) unless params[:q].nil? 

    content_tag('th', link_to(caption, url, :class=>session[@sort_name][:order]), :class => "sort_link #{order if key == column}") 
    end 
相关问题