Изградете просто търсене с simple_form Gem в Rails 5

Блог

Изградете просто търсене с simple_form Gem в Rails 5

Търсенето може да бъде основен филтър на вашия модел, но създаването на търсене, което е ефективно, бързо и всъщност получава резултатите, които искате да покажете, е много по -сложно. Помислете как се почувствахте последния път, когато търсите нещо в Bing вместо в Google. Добрият алгоритъм може да промени всичко.

последвам

Виждал съм много уроци за търсене за Rails 5, които използват | _+_ | , HTML форми или | _+_ |, но няма толкова много ресурси за | _+_ |, въпреки че | _+_ | се превърна в златен стандарт на формите Rails. Освен това и двете | _+_ | и | _+_ | са на път да бъдат отхвърлен след Rails 5.2 и заменен с | _+_ |.

Ето кратък преглед на това как можете да добавите основни функции за търсене към приложението си с помощта на | _+_ | скъпоценен камък!

Да започваме!

1. Настройте вашето приложение Rails

Създавам основно приложение за релси, без Webpacker, но използвам PostgreSQL като моя база данни, защото това ще ми позволи по-късно да правя нечувствително към регистър търсене.

form_tag

p.s. Не забравяйте да създадете базата данни, след като направите приложението си rails, защото postgres не създава db по подразбиране

form_for

p.s. Не забравяйте допълнителните стъпки за настройка Bootstrap & конфигуриране Проста форма !

nba потоци reddit 2021

2. Създайте модела

За този случай ще създам просто приложение с един модел, за да търся в списък с коктейли, които добавих към базата си данни чрез крайна точка JSON (благодарение на github.com/teijo за db!). Ще прегледам бързо импортирането на данни. Ако искате пълна статия за засяване от база данни на трета страна, оставете съобщение по -долу!

Първо създайте модела с три атрибута:

simple_form

След това добавете семена :

simple_form

3. Създайте контролера и изгледите

След това добавяме контролер с едно действие, за да покажем списък с всички коктейли. Тъй като нашето приложение има една страница, ще изкореня приложението в индекса за коктейли. Няма | _+_ | път в приложението.

Първо създайте контролера:

form_for

След това добавете начален маршрут за индекса:

www.aol.com/download 9.7
form_tag

И накрая, нека добавим прост преден край за коктейла:

form_with

4. Добавете формата за търсене

Сега е време да добавите функционалност за търсене. Обичам simple_form поради ... ами ... неговата простота, защото можете да направите форма само в четири реда. Вижте пълната документация тук .

simple_form

Тук трябва да внимавате за няколко неща.

  1. Първото нещо е | _+_ | . Обикновено създаваме формуляра за променлива на екземпляр, когато манипулираме модел (т.е. | _+_ | |). Ако се опитам да извикам параметъра | _+_ |, приложението ще ми каже, че променливата е неопределена. Като го задам като символ с двоеточие преди | _+_ |, мога да го използвам като ключ в моя хем на params.
  2. URL адресът на формуляра за търсене ни казва на коя страница ще се показват резултатите. Тук го посочих като | _+_ |. Приложението има само една страница (основната страница на индекса за коктейли), така че трябва да кажа на формуляра си да показва резултатите на тази страница.
  3. По подразбиране simple_form има метода POST. Тъй като търсенето е GET заявка, трябва изрично да го уточним в първия ред.
  4. Входът | _+_ | ще бъде ключ в моя params хеш. Стойността е ключовата дума, която потребителят търси. За да нулирате формуляра при опресняване на страницата, аз му давам стойност по подразбиране празно.

5. Задайте заявката си за търсене в контролера

Ще започнем със супер просто търсене - точна ключова дума. Това е основна заявка, но не е наистина полезна, защото няма да намери | _+_ | ако фразата ми за търсене е | _+_ | или която и да е част от думата.

Но засега нека започнем с основите:

rails new simple_search --database=postgresql rails db:create

6. Нека подобрим това търсене!

Първото нещо, което искам да направя, е да направя търсенето ми безразлично, така че Маргарита и Маргарита връщат същия резултат.

Тук моята проста заявка за активен запис няма да стане и ще трябва да добавя SQL. Една от причините, поради които стартирах приложението с PostgreSQL като моя db адаптер, е да използвам ILIKE, което ще ми даде несъответствие между регистрите и регистрите:

#Gemfile gem 'simple_form' gem 'bootstrap', '~> 4.2.1' bundle install

Какво ще кажете за частично търсене? Ами ако искаме | _+_ | за връщане на всички рецепти за маргарита като | _+_ | или | _+_ |? Ще трябва да добавим заместващи правила, за да работи това. Имайте предвид, че за да добавя % заместващ символ, трябва да интерполирам променливата си като низ.

rails g model cocktail name glass preparation:text rails db:migrate

8. Това е всичко!

Свършихме основното си търсене. Има много неща, които мога да добавя към това приложение, като например търсене в множество колони, множество таблици, запазване на търсенето ми в сесията или използване на обхвати, за да направя търсенето по -ефективно. Кажете ми по -долу, ако искате статия за разширено търсене!

GitHub хранилище тук .

как да закупите apollo валута

Демо на Heroku тук .

Допълнителна информация:

Как да използвате PostgreSQL с приложението Ruby on Rails в macOS
https:///p/09f1e543c728

Ruby За начинаещи: Научете се да кодирате с Ruby от Scratch
http://class.learnstartup.net/p/GgFNUm4tP

Метапрограмирането на Ruby е дори по -хладно, отколкото звучи
https:///p/0116c0dcd0fe/

Урок за Ruby on Rails: Научете 6 техники за SEO Ruby on Rails
http://class.learnstartup.net/p/CZBBMrl-_

Документация за алгоритъма на Ruby с AsciiDoc и Knitr
☞ https:///p/b104565ecc94/

Ruby програмиране за начинаещи
http://class.learnstartup.net/p/vjkBeGb2M

#рубин на релси #рубин