Rubocop JSON:对齐方法调用的参数(如果它们跨越多行)

Rubocop JSON: Align the parameters of a method call if they span more than one line

我的测试文件中出现 Rubocop 问题。首先,这是我现在的代码:

should 'should show user' do
  get user_url(@user),
    headers: @header
  assert_response :success
end

should 'should update user' do
  patch user_url(@user),
    params: {
      data: {
        attributes: {
          name: @user.name
        }
      }
    }, headers: @header
  assert_response :success
end

这就是 Rubocop 错误输出:

test/controllers/users_controller_test.rb:34:9: C: Align the parameters of a method call if they span more than one line.
        headers: @header
        ^^^^^^^^^^^^^^^^
test/controllers/users_controller_test.rb:40:9: C: Align the parameters of a method call if they span more than one line.
        params: { ...
        ^^^^^^^^^

所以我在样式指南中搜索 JSON 的正确对齐方式。我真的尝试了缩进和换行的每一种组合,但 Rubocop 每次都会抛出同样的错误。 Andy 顺便说一下,将整个 JSON 放在一行中也不是解决方案。 任何人都可以解释一下正确的对齐方式如何让 Rubocop 满意吗?

改为

should 'should show user' do
  get user_url(@user),
      headers: @header
  assert_response :success
end

should 'should update user' do
  patch user_url(@user),
        params: {
          data: {
            attributes: {
              name: @user.name
            }
          }
        },
        headers: @header
  assert_response :success
end

解释:

因为 user_url(@user) 是你获得第二个参数的第一个参数 headers: @header 应该与之对齐

同样适用于具有三个参数的第二名