我正在尝试对具有一个Foo
的列Bar
进行排序。目前,我正在使用加入,以便foos#index
行动按bars.name
排序*:
@foos = Foo.joins(:bar).order("bars.name")
问题是,并非所有foos
都有bar
,而且此加入似乎忽略了没有Foo
的任何Bar
。我不想忽略这些记录。有没有办法做到这一点?
*对于记录,我使用的是will_paginate
,因此index
操作实际上包括:
@foos = Foo.joins(:bar).paginate :page => params[:page], :order => "bars.name"
答案 0 :(得分:0)
您需要在LEFT JOIN
语句中使用SQL joins
。这将获取所有Foos(具有条形的Foos)
要使用“Rails方式”,您可以将其包含在范围内:
scope :some_scope_name, joins("LEFT JOIN bars ON foos.id = bars.foo_id")