web-dev-qa-db-ja.com

Rails consoleでput / postリクエストのparamsハッシュを提供する

コンソール内からいくつかのリクエストの応答を確認する方が便利だと思います

>> app.put '/users/2/'
=> 500

しかし、リクエストパラメータを指定する方法を見つけることができませんでした。どうすればいいですか?

20
jibiel

URLに投稿または投稿する場合は、その方法もあります。 Rails本番ログ:)に表示されているとおりにパラメーターをコピーして貼り付けることができます。

app.post('/foo', {"this" => "that", "items" => ["bar", "baz"]})
app.put('/foo', {"this" => "that", "items" => ["bar", "baz"]})

カスタムヘッダーを送信する場合は、オプションの3番目のパラメーターを追加できます。

app.post('/foo', {:this => "that", :items => ["bar", "baz"]}, {"X-Do-Something" => "yes"})

Get/post/put/deleteメソッドはいずれも、コンソールに完全なログ出力を表示して、調べることができます。返された応答本文、HTTPステータス、応答ヘッダーなどの情報を取得したい場合は、これらも簡単です。

app.response.body

app.response.status

app.response.headers.inspect

ソース: http://andyjeffries.co.uk/articles/debug-level-logging-for-a-single-Rails-production-request

35
Nakul

上記はに変更されました

app.post '/foo', params: {"this" => "that", "items" => ["bar", "baz"]}

また、フォームについては、authenticity_tokenも指定する必要がありました。したがって、私の例では、完全なコマンドは

app.post '/login', params: {email: '[email protected]', password: 'abcd', authenticity_token: 'my_authenticity_token_generated_for_this_view' }
4
Jayanti Hari