Как держать флажок params в рельсах после поиска - PullRequest
0 голосов
/ 14 мая 2019

Поиск работает нормально, но проблема в том, что когда я печатаю отчет Excel в соответствии с result.it показывает все значения в базе данных, фильтр не работает. Повторное кодирование по всей странице, затем флажки истинные значения ушел. Как сохранить параметры после обновления страницы

   .row
            .col-md-3
              = check_box_tag "search_customer_supplier[accounts_dealer_types.dealer_code][]","CUS", false
              = label_tag "Organizational Customer"
            .col-md-3
              = check_box_tag "search_customer_supplier[accounts_dealer_types.dealer_code][]", "SUP", false, class: "first_resolution"
              = label_tag "Organzational Supplier"
            .col-md-3
              = check_box_tag "search_customer_supplier[accounts_dealer_types.dealer_code][]", "INDCUS", false, class: "first_resolution"
              = label_tag "Individual Customer"
            .col-md-3
              = check_box_tag "search_customer_supplier[accounts_dealer_types.dealer_code][]", "INDSUP", false, class: "first_resolution"
              = label_tag "Individual Supplier"

Это мой контроллер,

    if params[:search].present? or params[:excel_report].present?

      search_customer_supplier = params[:search_customer_supplier]
      if params[:organization_children].present? and search_customer_supplier["id"].present?
        organization_id = search_customer_supplier["id"]
        organization = Organization.find(organization_id)
        anchestor_ids = organization.anchestors.map{|o| o[:member].id }
        search_customer_supplier["id"] = "(#{anchestor_ids.join(' OR ')})" if anchestor_ids.any?
      end
      params[:search_customer_supplier]['accounts_dealer_types.dealer_code'] = params[:search_customer_supplier]['accounts_dealer_types.dealer_code'].join(" OR ") if params[:search_customer_supplier]['accounts_dealer_types.dealer_code'].present?

      @all_address = params[:all_address].to_bool if params[:all_address].present?
      customer_report = params[:search_customer_supplier].map { |k, v| "#{k}:#{v}" if v.present? }.compact
    else
      customer_report = ["accounts_dealer_types.dealer_code:(CUS OR SUP OR INDCUS OR INDSUP)"]
    end

Ответы [ 2 ]

0 голосов
/ 15 мая 2019

После этого у меня возникла другая проблема, когда я делаю пагинацию на 2-й странице.

Это вывод, когда он разбивается на следующие страницы.https://i.stack.imgur.com/5MDpq.png

Ниже я упомянул код (в контроллере), я думаю, что это будет запрос, который вызывается при разбиении на страницы.

 params[:search_customer_supplier]['accounts_dealer_types.dealer_code'] = params[:search_customer_supplier]['accounts_dealer_types.dealer_code'].join(" OR ") if params[:search_customer_supplier]['accounts_dealer_types.dealer_code'].present?
0 голосов
/ 15 мая 2019

Вы можете использовать проверку для предоставленного значения в третьем параметре:

check_box_tag 'search_customer_supplier[accounts_dealer_types.dealer_code]', 'CUS', params[:search_customer_supplier]['accounts_dealer_types.dealer_code'] == 'CUS'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...