我有这些模型,我正在和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}谢谢你帮我。
发布于 2011-10-15 09:05:01
这是我的案例,在你的项目中尝试一下,我会尽我所能帮助你:
所以我有一个cars表,里面有carname_id和carmodel_id。然后再为carnames和carmodels添加两个表,其中包含name和id。现在假设我有id为2的carname Mercedes和id为5的carmodel S classe,在本例中,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,“汽车制造”%>
希望能有所帮助。
https://stackoverflow.com/questions/7710171
复制相似问题