Ссылка на результаты поиска с помощью Ruby - PullRequest
0 голосов
/ 08 мая 2018

Я полный новичок в Ruby и Nanoc, но проект у меня на коленях. По сути, код для страницы возвращает отдельные URL-адреса для каждого элемента, связывающего их с руководством. Я пытаюсь создать URL, который будет перечислять все руководства в одном поиске. Любая помощь приветствуется.

Вот код:

<div>
  <%
    manuals = @items.find_all('/manuals/autos/*')
      .select {|item| item[:tag] == 'suv' }
      .sort_by {|item| item[:search] }

    manuals.each_slice((manuals.size / 4.0).ceil).each do |manuals_column|
  %>
    <div>
      <% manual_column.each do |manual| %>
        <div>
          <a href="<%= app_url "/SearchManual/\"#{manual[:search]}\"" %>">
            <%= manual[:search] %>
          </a>
        </div>
      <% end %>
    </div>
  <% end %>
</div>

1 Ответ

0 голосов
/ 08 мая 2018

Поскольку вы не указали, что items возвращает, я сделал общий пример:

require 'uri'

# let suppose that your items query has the follow output
manuals = ["Chevy", "GMC", "BMW"]

# build the url base
url = "www.mycars.com/search/?list_of_cars="

# build the parameter that will be passed by the url
manuals.each do |car|
    url += car + ","
end

# remove the last added comma
url.slice!(-1)

your_new_url = URI::encode(url)

# www.mycars.com/?list_of_cars=Chevy,GMC,BMW

# In your controller, you will be able to get the parameter with
# URI::decode(params[:list_of_cars]) and it will be a string:
# "Chevy,GMC,BMW".split(',') method to get each value.

Некоторые соображения:

  • Я не знаю, будете ли вы использовать это в представлении или в контроллере, если это будет видно, чем обернуть код синтаксисом <% %>.

  • Что касается формата URL, вы можете найти больше вариантов его построения: Передача массива через URL

  • При написании вопроса о SO, пожалуйста, больше работайте над этим.Вы поможете нам найти быстрый ответ на ваш вопрос, и вы, не дожидаясь ответа.

  • Если вам нужно что-то более конкретное, просто спросите, и я смогу посмотреть, смогу ли яответ.

...