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 に答える