Имам приложение, построено върху релси4, използвайки PG и имам контролер за въпроси, където всеки въпрос има тагове. Искам потребителят да има поле, където да може да въвежда ключови думи, разделени със запетаи.
Проблемът е, че find_by_sql се нуждае от всяка граница на думата да бъде низ, разделен със запетаи.
Имам това точно сега, само за да тествам, тъй като работи само с една дума, освен ако ръчно не въвеждам такива думи "ruby", "rails", "angular"
Question.find_by_sql("SELECT * FROM questions AS q INNER JOIN taggings AS t ON q.id = t.question_id INNER JOIN tags AS ta ON ta.id = t.tag_id WHERE ta.name IN ("#{current_user.first_name}");")
Така че, отново, потребителят ще има вмъкване на текст, където би могъл да го постави ruby, rails, angular
и тогава мога да търся с тези думи.
Надявам се, че това има смисъл и благодаря предварително!
Отговори:
-1 за отговор № 1Какво ще кажеш:
query_tags = user_input.split(",").map { |i| """ + i.strip + """ }.join(", ")
# => "ruby", "rails", "angular"