/ / Необходимо е да конвертирате думи към низове, за да търсите по sql в руби [duplicate] - sql, руби-на-релси, рубин, postgresql, руби-на-релси-4

Необходимо е да конвертирате думи в низове, за да търсите по sql в руби [duplicate] - sql, руби-на-релси, рубин, postgresql, руби-на-релси-4

Имам приложение, построено върху релси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"