2013-10-14 3 views
1

1 хотел бы создать функцию поиска, которая будет отображать слово для поиска выделены жирным шрифтом, а текст по центру (окружающих) вокруг слова.Поиск вокруг слова

пример 1 имеют этот текст:

Хорошо! Ворота роженицы, ни смех белка из этого, Департамент IPhone экологических, включенных в другие категории facilisis fermentum, facilisis dignissim смешной человек, и когда он звук в его ? Porttitor НИСИ включенные в другие группировки. Улица, для роженицы tortor экскретов adipiscing Lorem ODIO phasellus, стрелки , что, если они не были, горы изречения, мыши, rhoncus placerat. Lorem, поэтому с недвижимостью Aenean включенных в другие категории. Примеры изображений Lorem augue бакалавриат должен быть! реальные партнеры недвижимости Агитфильм? Lorem чувствовать PID. На клавиатуре, lundium, недорогое, домашнее задание? Когда вы завтра партнеров грустной партнеры ненависть. Placerat ут tincidunt arcu rhoncus DUIs изречения, но и в целом для ворота элемента большого , этот актив. горы домашних заданий. Автор Risus pulvinar во времени, чтобы прийти, улица разработчиков, чтобы adipiscing, augue. Но кто-либо! Dapibus placerat, и смешно ход улицы великого целого Cursus в сем porttitor, середина в.

В этом тексте слово поиска магистрант!

результата, и я хочу только текст, но не все,

... и пропаганда бакалавриату должно быть! Augue много важных партнеров ...

На данный момент, я пишу, что

<%= highlight(truncate(sanitize(sound.document.html_safe), :length => 3000), @soundsstring) %> 

И в мой контроллер:

@sounds = Sound.where(:user_id => current_user.id).search(params[:search]).order('created_at DESC').order(sort_column + " " + sort_direction).page(params[:page]).per(15) 
respond_to do |format| 
    format.html # index.html.erb 
    format.json { render json: @sounds } 
    @soundsstring = params[:search] 

поиска слово выделены жирным шрифтом. Но исследование было сосредоточено в слове. Если вы можете помочь мне.

1 1 надежда ясно

Спасибо.

+0

могли бы вы прояснить это, пожалуйста, «и поиск слова выделены жирным шрифтом. Но не в центре этого слова.». Что не по центру? В каком слове? Может предоставить некоторые примеры/скриншоты? –

+0

Что вы имеете в виду «не по центру слова? Можете ли вы привести пример вывода и желаемых результатов? Ok 1 – zwippie

+0

редактировать мой пример! –

ответ

1

Вы можете получить первое вхождение строки запроса с String#index, а затем вычесть количество символов:

start_index = [0, @original_text.index(@query_string) - 20].max 

Теперь показывают только часть исходного текста с запросом выделить:

highlight @original_text[start_index, (@query_string.length + 20)], @query_string 
+0

поставить все на мой взгляд? или start_index = [0, @ original_text.find (@query_string) - 20] .max на мой контроллер? и в виде Highlight @original_text [START_INDEX, (@query_string.длина + 20)], @query_string право? –

+0

Вы можете поместить все это в представление, поскольку (на мой взгляд) это все форматирование вывода. – zwippie

+0

Хорошо, я попробую и у меня есть эта ошибка: undefined method 'find 'for #

Смежные вопросы