0

宝石「thinking_sphinx」、バージョン=>「1.4.14」を使用して検索しました。

policies.deleted= 0 のテーブル ポリシーに条件を作成しようとしています。

これが私のコントローラーです

 class PolicyController < ApplicationController

    def search
      @policies = Policy.search params[:search],:conditions=>[policies.deleted=0] :include => :client, :match_mode => :boolean
    end

 end

私のモデルは次のとおりです。「ポリシー」と「クライアント」

class Policy < ActiveRecord::Base
   belongs_to :client

   define_index 'policy_foo' do
      indexes mum_policy
      indexes [client.name, client.lastname1], :as => :client_name
      has client_id, created_at
   end
end

class Client < ActiveRecord::Base
  has_many  :policies
end

私は試した

    def search
        @policies = Policy.search params[:query],:include => :client, :match_mode => :boolean   
        @search = Policy.find(:all,:conditions=>['deleted=0 and client_id IN (?)',@client])
    end

誰かが検索して条件を削除する方法を知っている= 0?

私は本当に助けに感謝します

4

1 に答える 1

1

インデックス定義で使用可能な属性として削除する必要があります。

define_index 'policy_foo' do
  indexes mum_policy
  indexes [client.name, client.lastname1], :as => :client_name

  has client_id, created_at, deleted
end

そして、以下が機能します。

Policy.search params[:query], :include => :client, :match_mode => :boolean,
  :with => {:deleted => 0, :client_id => @client.id}
于 2013-10-15T04:32:50.757 に答える