meta_search упорядочить по количеству - PullRequest
0 голосов
/ 10 октября 2011

У меня есть эти модели, и я играю с meta_search, чтобы заказать его.

class Company < ActiveRecord::Base
  has_many :delivers
  has_many :estimates, :through => :deliver
end

class Estimate < ActiveRecord::Base
  has_many :delivers, :dependent => :destroy
  has_many :companies, :through => :delivers
end

class Deliver < ActiveRecord::Base
  belongs_to :estimate
  belongs_to :company
end

Как вы видите, у компании много оценок, и мне нужен фильтр, чтобы показать компании в этом порядке: от компанииу которого наибольшее количество оценок для компании, имеющей наименьшее количество оценок.
Я хотел бы иметь ссылку для сортировки, например:

= sort_link @search, :estimates_asc

Я знаю, что могу заказатьтаким образом, компании с этим заявлением

Company.joins(:estimates).sort_by{|x| -x.estimates.size}

Спасибо за помощь.

1 Ответ

0 голосов
/ 15 октября 2011

Это мой случай, и попробуйте его в своем проекте, я помогу вам с тем, что я могу:

Итак, у меня есть таблица автомобилей с carname_id и carmodel_id.затем еще 2 таблицы для названий автомобилей и кармоделей с именами и идентификаторами.Теперь предположим, что у меня есть автомобиль Mercedes с идентификатором 2 и carmodel S classe с идентификатором 5, в этом случае мой cartable будет содержать значения 2 и 5 Mercedes S classe.

Сортировать их по полям я сделал так:

в автомобилях контроллер:

  @search = Car.search(params[:search])
    @search.meta_sort ||= 'created_at.desc'  <-- this line is for default order display, you can use any other field
    @cars = @search.all.paginate :page => params[:page], :per_page => 5

и в просмотр

<%= sort_link @search, :carname_name,  "Car make" %>  <-- carname is the field from 

    car table where the carname id is stored and name is the he name itself for this id that's in carname table

<%= sort_link @search, :carmodel_name, "Car model"%>

теперь все хорошо.

в вашем случае я просто предполагаю, что это будет что-то вроде

<% = sort_link @search,: company_estimate, "Car make"%>

надеюсь, это поможет.

...