0

在我的规范中,当我运行下面的 POST 请求时,一切正常。

    before do
      request_payload = {
        player: {
          first_name: "Joe",
          last_name: "Carradine",
          team_id: "1"
        }
      }

      post :create, request_payload
    end

但是当我运行 PUT 规范时:

    before do
      request_payload = {
        player: {
          first_name: "Buck",
          last_name: "Carradine",
          team_id: "1"
        }
      }

      put :update, id: 3, request_payload
    end

我收到这样的错误:

[filename]_spec.rb:139: syntax error, unexpected '\n', expecting tASSOC (SyntaxError)

[filename]_spec.rb:198: syntax error, unexpected $end, expecting keyword_end

有任何想法吗?我不知道 PUT 有不同的语法吗?

4

1 回答 1

3

要修复语法错误,请使用put :update, { id: 3 }, request_payload,而不是put :update, id: 3, request_payload。Ruby 仅支持“裸”(例如无花括号)哈希作为方法的最后一个参数,因此id: 3不能出现在参数列表的中间而不用花括号括起来。

于 2012-10-23T05:47:09.167 回答