С помощью солнечных пятен, как я могу индексировать определенные поля?

Я хотел бы добавить условно индексировать некоторые данные в методе "пятно поиска" солнечного пятна в моей модели. В идеале это будет выглядеть примерно так:

searchable do
    string :important_text
    if address_visible?
      string :address
    end
end

В приведенном выше примере, я хотел бы индексировать поле адреса, только если address_visible? Метод (в модели) возвращает true. К сожалению, адрес_видимый? Метод выдает "NoMethodError", потому что контекст теперь является Sunspot::DSL::Fields, а не моделью.

1 ответ

Решение

Я не думаю, что вы действительно можете делать именно то, что вы хотите. Тем не менее, вы можете индексировать другое значение для адреса, когда адрес не виден. Например:

searchable do
    string :important_text
    string :address { |model| model.address_visible? ? model.address : '' }
end
Другие вопросы по тегам