尝试在rails管理表中订购列表

时间:2015-02-17 00:13:05

标签: ruby-on-rails

我试图点击每个管理员表格,以便他们最近一次显示。

例如,我想通过created_at DESC订购供应商表 - 这意味着最新的供应商显示在顶部。

目前在views / admin / suppliers / index.html.haml:

%thead
    %tr
      %th= sort_link(@search, :name, 'ID')
      %th= sort_link(@search, :name, 'Name')
      %th= sort_link(@search, :category, 'Category')
      %th= sort_link(@search, :region, 'Region')
      %th Review Count
      %th Average rating
      %th Claimed?
      %th Owner
      %th
      %th
      %th
  %tbody
    = render @suppliers

在views / admin / suppliers / _supplier.html.haml中:

%tr
  %td= supplier.id
  %td= supplier.name
  %td= supplier.category_name
  %td= supplier.region_name
  %td= supplier.review_count
  %td= supplier.average_overall_rating
  %td= supplier_claimed_label(supplier.owned?)

并在我的controllers / admin / suppliers_controller.rb中:

def index
    @search    = Supplier.search(params[:q], :order => params[:sort] || "created_at DESC")
    @suppliers = @search.result
  end

但这似乎并没有这样做。

有人可以帮忙吗?

由于

1 个答案:

答案 0 :(得分:0)

我不确定Ransack的具体内容,除了我在文档中可以阅读的内容,但result的返回是一个ActiveRecord关系,所以你可以添加额外的ActiveRecord方法来影响你的结果如此...

def index
    @search    = Supplier.search(params[:q])
    @suppliers = @search.result.order(created_at: :desc)
end

我无法对此进行测试,因为我没有这个宝石的项目,但这应该有效。