rails 报告中 ruby 中的分页错误
Pagination errors in ruby on rails report
我最近开始学习 ruby-on-rails,现在我已经到了可以创建一些东西但仍然不太熟悉语法的地步。
在报告视图中,当我分页到第 2 页时出现错误。
但在 yesterday.Today 中更正了分页我使用 params.dig 方法编辑了一些复选框来保存复选框 values.those 值也需要在第二个 page.What 中显示我的控制器有问题
这是我的看法
%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
在我的浏览器中显示 controller.Those 中的错误行在哪里,
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?
这是我得到的输出错误
ReportsController 中没有方法错误#customer_supplier_report
"CUS":String 的未定义方法 `join' 您是说吗? JSON
您收到此错误是因为 join()
是 Array class
的方法。但是你的参数值是字符串类型的
即
[1,2,3].join(' OR ') #=> "1 OR 2 OR 3"
但是
"aasd".join('OR') #=> will throw exception which you are getting.
检查你的参数值是否是一个正确的数组
然后就出现了这个错误输出
https://i.stack.imgur.com/AGB23.png
本项目使用elasticsearch分页also.i下面附上我的代码
https://i.stack.imgur.com/TMSrw.png
我最近开始学习 ruby-on-rails,现在我已经到了可以创建一些东西但仍然不太熟悉语法的地步。 在报告视图中,当我分页到第 2 页时出现错误。
但在 yesterday.Today 中更正了分页我使用 params.dig 方法编辑了一些复选框来保存复选框 values.those 值也需要在第二个 page.What 中显示我的控制器有问题
这是我的看法
%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
在我的浏览器中显示 controller.Those 中的错误行在哪里,
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?
这是我得到的输出错误
ReportsController 中没有方法错误#customer_supplier_report
"CUS":String 的未定义方法 `join' 您是说吗? JSON
您收到此错误是因为 join()
是 Array class
的方法。但是你的参数值是字符串类型的
即
[1,2,3].join(' OR ') #=> "1 OR 2 OR 3"
但是
"aasd".join('OR') #=> will throw exception which you are getting.
检查你的参数值是否是一个正确的数组
然后就出现了这个错误输出
https://i.stack.imgur.com/AGB23.png
本项目使用elasticsearch分页also.i下面附上我的代码
https://i.stack.imgur.com/TMSrw.png