首页 > 解决方案 > 在 Rails 5 中将 json 作为参数管理

问题描述

在我的 Rails 5 应用程序中,我在其中一个控制器中有以下参数:

  def batch_create_appointments_params
    params.permit(_json: ["details": %i[checkInDateTime checkOutDateTime waiting], "vehicle": %i[licence_plate vin brand model], "customer": %i[first_name last_name], "contact": %i[contact_method email phone], jobs: [:jobId, { labor: [:description], menus: [:description] }]])
  end

如您所见,它是相当长的 json 参数。我想知道拥有这么长的参数是否是一种正常的方法?特别是当涉及到我设置为 Max: 120 的 Rubocop Layout/LineLength 设置时。有没有办法拆分这些参数?或者我应该为这些行禁用 rubocop 中的 Layout/LineLength 吗?

标签: ruby-on-rails

解决方案


我建议这种格式

  def batch_create_appointments_params
    params.permit(_json: [
      details: %i[checkInDateTime checkOutDateTime waiting],
      vehicle: %i[licence_plate vin brand model],
      customer: %i[first_name last_name],
      contact: %i[contact_method email phone],
      jobs: [:jobId, { labor: [:description], menus: [:description] }]
    ])
  end

推荐阅读