think_sphinx検索の検索結果を並べ替えようとしています。並べ替えたい列は、関連するテーブルにあります。
class Membership < ActiveRecord::Base
define_index do
indexes :title
indexes user.first_name, :as => :first_name
indexes user.last_name, :as => :last_name
has :organization_id, :active
set_property :delta => true
end
# begin
sphinx_scope(:by_organization) do |org|
{:with => {:organization_id => org.id, :active => true}}
end
sphinx_scope(:sort_by_name) do
{:order => 'last_name, first_name'}
end
end
次に、次のようにコードを呼び出します。
search_results = Membership.by_organization(Organization.current).sort_by_name.search((search_value || ""), :page => (page || 1), :per_page => 10)
sort_by_nameを使用しない場合、正しい数の戻り値を取得します。sortメソッドを追加すると、行が表示されません。
私もそれを検索メソッドに渡そうとしましたが、同じ結果になりました。