Я использую act_as_taggable_on для тегирования в наших проектах, вместе с sunspot / solr для поиска.
Получаем странный неожиданный результат. Сначала наша установка (краткая версия):
Модель:
Class Person
has_many :projects
searchable do
string :project_tags, :multiple => true do
projects.map { |p| p.tag_list}.flatten
end
end
Taglist - это метод из act_as_taggable_on, который возвращает массив тегов для каждого проекта (fe ["foo", "bar"]). Мы индексируем теги проекта для участников проекта.
Когда в нашем контроллере мы делаем:
Person.search() do
with(:project_tags).any_of(params[:tags])
end
Это возвращает нужных людей. Пока все хорошо.
Проблема
Мы хотим иметь возможность искать по нескольким тегам. Итак, в соответствии с инструкциями по солнечным пятнам мы передаем массив. Код выглядит примерно так:
@tags_array= params[:tags].split(/ /)
Person.search() do
with(:project_tags).any_of(@tags_array)
end
Теперь Sunspot дает нам каждого человека в результате, независимо от того, какие теги мы используем! Мы как сумасшедшие тестировали это на консоли, но не могли понять, где мы ошибаемся.
Любая помощь будет принята с благодарностью!
Получаем странный неожиданный результат. Сначала наша установка (краткая версия):
Модель:
Class Person
has_many :projects
searchable do
string :project_tags, :multiple => true do
projects.map { |p| p.tag_list}.flatten
end
end
Taglist - это метод из act_as_taggable_on, который возвращает массив тегов для каждого проекта (fe ["foo", "bar"]). Мы индексируем теги проекта для участников проекта.
Когда в нашем контроллере мы делаем:
Person.search() do
with(:project_tags).any_of(params[:tags])
end
Это возвращает нужных людей. Пока все хорошо.
Проблема
Мы хотим иметь возможность искать по нескольким тегам. Итак, в соответствии с инструкциями по солнечным пятнам мы передаем массив. Код выглядит примерно так:
@tags_array= params[:tags].split(/ /)
Person.search() do
with(:project_tags).any_of(@tags_array)
end
Теперь Sunspot дает нам каждого человека в результате, независимо от того, какие теги мы используем! Мы как сумасшедшие тестировали это на консоли, но не можем понять, где мы ошибаемся.
Любая помощь будет признательна!
Получаем странный неожиданный результат. Сначала наша установка (краткая версия):
Модель:
Class Person
has_many :projects
searchable do
string :project_tags, :multiple => true do
projects.map { |p| p.tag_list}.flatten
end
end
Taglist - это метод из act_as_taggable_on, который возвращает массив тегов для каждого проекта (fe ["foo", "bar"]). Мы индексируем теги проекта для участников проекта.
Когда в нашем контроллере мы делаем:
Person.search() do
with(:project_tags).any_of(params[:tags])
end
Это возвращает нужных людей. Пока все хорошо.
Проблема
Мы хотим иметь возможность искать по нескольким тегам. Итак, в соответствии с инструкциями по солнечным пятнам мы передаем массив. Код выглядит примерно так:
@tags_array= params[:tags].split(/ /)
Person.search() do
with(:project_tags).any_of(@tags_array)
end
Теперь Sunspot в результате дает нам каждому человеку, независимо от того, какие теги мы используем! Мы как сумасшедшие тестировали это на консоли, но не могли понять, где мы ошибаемся.
Любая помощь будет принята с благодарностью!
Class Person
has_many :projects
searchable do
string :project_tags, :multiple => true do
projects.map { |p| p.tag_list}.flatten
end
end
Taglist - это метод из act_as_taggable_on, который возвращает массив тегов для каждого проекта (fe ["foo", "bar"]). Мы индексируем теги проекта для участников проекта.
Когда в нашем контроллере мы делаем:
Person.search() do
with(:project_tags).any_of(params[:tags])
end
Это возвращает нужных людей. Пока все хорошо.
Проблема
Мы хотим иметь возможность искать по нескольким тегам. Итак, в соответствии с инструкциями по солнечным пятнам мы передаем массив. Код выглядит примерно так:
@tags_array= params[:tags].split(/ /)
Person.search() do
with(:project_tags).any_of(@tags_array)
end
Теперь Sunspot дает нам каждого человека в результате, независимо от того, какие теги мы используем! Мы как сумасшедшие тестировали это на консоли, но не можем понять, где мы ошибаемся.
Любая помощь будет признательна!
Class Person
has_many :projects
searchable do
string :project_tags, :multiple => true do
projects.map { |p| p.tag_list}.flatten
end
end
Список тегов - это метод из act_as_taggable_on, который возвращает массив тегов для каждого проекта (например, ["foo", "bar"]). Мы индексируем теги проекта для участников проекта.
Когда в нашем контроллере мы делаем:
Person.search() do
with(:project_tags).any_of(params[:tags])
end
Это возвращает нужных людей. Пока все хорошо.
Проблема
Мы хотим иметь возможность искать по нескольким тегам. Итак, в соответствии с инструкциями по солнечным пятнам мы передаем массив. Код выглядит примерно так:
@tags_array= params[:tags].split(/ /)
Person.search() do
with(:project_tags).any_of(@tags_array)
end
Теперь Sunspot дает нам каждого человека в результате, независимо от того, какие теги мы используем! Мы как сумасшедшие тестировали это на консоли, но не можем понять, где мы ошибаемся.
Любая помощь будет признательна!
Мы индексируем теги проекта для участников проекта.
Когда в нашем контроллере мы делаем:
Person.search() do
with(:project_tags).any_of(params[:tags])
end
Это возвращает нужных людей. Пока все хорошо.
Проблема
Мы хотим иметь возможность искать по нескольким тегам. Итак, в соответствии с инструкциями по солнечным пятнам мы передаем массив. Код выглядит примерно так:
@tags_array= params[:tags].split(/ /)
Person.search() do
with(:project_tags).any_of(@tags_array)
end
Теперь Sunspot в результате дает нам каждому человеку, независимо от того, какие теги мы используем! Мы как сумасшедшие тестировали это на консоли, но не могли понять, где мы ошибаемся.
Любая помощь будет принята с благодарностью!
Мы индексируем теги проекта для участников проекта.
Когда в нашем контроллере мы делаем:
Person.search() do
with(:project_tags).any_of(params[:tags])
end
Это возвращает нужных людей. Пока все хорошо.
Проблема
Мы хотим иметь возможность искать по нескольким тегам. Итак, в соответствии с инструкциями по солнечным пятнам мы передаем массив. Код выглядит примерно так:
@tags_array= params[:tags].split(/ /)
Person.search() do
with(:project_tags).any_of(@tags_array)
end
Теперь Sunspot дает нам каждого человека в результате, независимо от того, какие теги мы используем! Мы как сумасшедшие тестировали это на консоли, но не можем понять, где мы ошибаемся.
Любая помощь будет признательна!
@tags_array= params[:tags].split(/ /)
Person.search() do
with(:project_tags).any_of(@tags_array)
end
Теперь Sunspot дает нам каждому человеку в результате, независимо от того, какие теги мы используем! Мы как сумасшедшие тестировали это на консоли, но не могли понять, где мы ошибаемся.
Любая помощь будет принята с благодарностью!
@tags_array= params[:tags].split(/ /)
Person.search() do
with(:project_tags).any_of(@tags_array)
end
Теперь Sunspot дает нам каждого человека в результате, независимо от того, какие теги мы используем! Мы как сумасшедшие тестировали это на консоли, но не можем понять, где мы ошибаемся.
Любая помощь будет признательна!
Эрвин