У меня есть таблица вложений, которая имеет несколько значений (через полиморфную ассоциацию).Я хотел бы иметь возможность искать несколько значений (например, AND в SQL) с помощью мышления-сфинкса.
Например:
class FieldValue < ActiveRecord::Base
belongs_to :customized, :polymorphic => true
end
class Attachment < ActiveRecord::Base
has_many :field_values, :as => :customized, :dependent => :destroy
define_index do
has field_values.field_id, :as => :field_ids, :type => :multi
indexes field_values.value, :as => :field_values, :type => :multi
set_property :enable_star => 1
set_property :min_infix_len => 3
end
end
В моей модели FieldValue есть одно поле (значение), поэтому, используя приведенное выше определение индекса, я мог бы сделать что-то вроде:
Attachment.search :conditions => { :field_values => ["*5100*", "1"] }, :with => { :field_ids => [23, 24] }
Но технически это не делает то, на что я надеюсь.Значения field_values должны соответствовать field_ids (аналогично select * from attachments where (field_value.id = 23 and field_value.value like '*5100*) and (field_value.id = 23 and field_value.value = '1')
(я знаю, что выше отсутствуют объединения: P)
Возможно ли выполнить поиск, подобный этому?