Nano Hash - криптовалюты, майнинг, программирование

Метапоиск Rails search_form с флажками

Я немного запутался. Несмотря на все вопросы по этой теме здесь, я не могу найти правильное решение.

Что я хочу сделать, так это просто добавить флажки в форму фильтра индекса.

Я использую гем Metasearch, и вот мой текущий код:

  <form class="filter_form">
     <%= form_for @search do |f| %>
       <%= f.collection_select :categories_id_equals, Category.all, :id, :name, :include_blank => true, :prompt => "All categories" %>
       <%= f.collection_select :location_id_equals, Location.all, :id, :name, :include_blank => true, :prompt => "All locations" %>

       <ul> 
          <b> Type </b>     
          <% Type.all.each do |type|%>
        <li>
          <%= check_box_tag :types_id_equals, type.id %>
          <%=h type.name %>
        </li>
          <% end %>
      </ul>
       <%= submit_tag "Find Now", :class => "find" %>
     <% end %>

Все работает нормально, кроме галочек.

У меня нет большого опыта работы с рельсами, поэтому я не очень понимаю, что я делаю неправильно и что может быть наиболее удобным и простым способом.

Обновлять .....................

Дополнительные пояснения. У меня есть модель Trips, которая имеет связь HABTM с двумя моделями (Категории, Типы) и принадлежит Location.

Я хочу иметь возможность фильтровать поездки в своем индексе по категориям (выбор f.collection), местоположению (выбор f.collection) и типам (флажки).

После проверки типов и отправки - ничего не меняется, никакой фильтрации не делается!


  • Каким образом не работает? Не появляется? Вы получаете исключение? Проверить их можно, но в хэше params передается только один id проверяемого? 28.12.2011
  • Ничего не меняется, галочки не фильтруют результаты. Но передается только один идентификатор после изменения с ‹%= check_box_tag %› на ‹%= f.check_box %›. 28.12.2011

Ответы:


1
<%= check_box_tag "type_ids[]", type.id %>

Сделает это для вас. Выбранные идентификаторы будут переданы в виде строки, разделенной запятыми. Вы можете найти их в params[:type_ids], но вам придется иметь дело с ними вручную! Rails — это не волшебник, это фреймворк.

28.12.2011
  • Все равно ничего хорошего. Но не могли бы вы объяснить - что вы подразумеваете под необходимостью иметь дело с вручную? Как я уже сказал, я еще новичок :) 28.12.2011

  • 2

    Вот как я справился с этим.

    <% @sub_categories.each do |cat| %>
       <h2><%= cat.name %> <%= check_box_tag "q[product_category_id_in][]", cat.id %></h2>
    <% end %>
    

    По сути, просто q — это любой параметр вашего запроса, а затем сразу после этого в скобках в вашем методе meta_search. Я использовал what_foreign_key_in, так как хочу иметь возможность добавлять в массив более одного идентификатора для поиска. Затем добавьте пустые скобки после него, чтобы рельсы правильно обрабатывали параметры сообщения.

    08.04.2014
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..