Ошибки пагинации в отчете ruby ​​on rails - PullRequest
0 голосов
/ 15 мая 2019

Я недавно начал изучать ruby-on-rails, и теперь я дошел до того, что могу что-то создать, но все еще не очень комфортно с синтаксисом.В представлении отчета, когда я делаю пагинацию на 2-й странице, это выдает мне ошибку.

Но пагинации были исправлены вчера. Сегодня я отредактировал некоторые флажки, используя метод params.dig, чтобы сохранить значения флажков. Эти значения такженужно отобразить на 2-й странице. В чем проблема с моим контроллером

Это мой взгляд

 %br
          .row
            .col-md-3
              = check_box_tag "search_customer_supplier[accounts_dealer_types.dealer_code][]","CUS", params.dig('search_customer_supplier', 'accounts_dealer_types.dealer_code') == "CUS"
              = label_tag "Organizational Customer"
            .col-md-3
              = check_box_tag "search_customer_supplier[accounts_dealer_types.dealer_code][]", "SUP", params.dig('search_customer_supplier', 'accounts_dealer_types.dealer_code') == "SUP"
              = label_tag "Organzational Supplier"
            .col-md-3
              = check_box_tag "search_customer_supplier[accounts_dealer_types.dealer_code][]", "INDCUS", params.dig('search_customer_supplier', 'accounts_dealer_types.dealer_code') == "INDCUS"
              = label_tag "Individual Customer"
            .col-md-3
              = check_box_tag "search_customer_supplier[accounts_dealer_types.dealer_code][]", "INDSUP", params.dig('search_customer_supplier', 'accounts_dealer_types.dealer_code') == "INDSUP"
              = label_tag "Individual Supplier"

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

 def customer_supplier_report
    Organization
    Address
    ContactNumber
    refined_query = ""
    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?

      # puts params[:search_customer_supplier]['accounts_dealer_types.dealer_code']

      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

В моем браузере отображается мнегде строки ошибок в контроллере. Это

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?

Это выходные ошибки, которые я получил

NoMethodError в ReportsController # customer_supplier_report

неопределенный метод `join 'для"CUS": String Вы имели в виду?JSON

Ответы [ 2 ]

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

Потом пришла эта ошибка вывода

https://i.stack.imgur.com/AGB23.png

этот проект также использует эластичный поиск для нумерации страниц. Я прикреплю мой код ниже.

https://i.stack.imgur.com/TMSrw.png

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

Вы получаете эту ошибку, потому что join() является методом Array class.Но значение вашего параметра имеет строковый тип.

т.е.

...