Я недавно начал изучать 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