为rails控制台中的put / post请求提供params哈希值

时间:2011-12-12 12:59:03

标签: ruby-on-rails console

我发现检查来自控制台内的某些请求的响应更方便

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

但是无法找到指定请求参数的方法。我该怎么做?

2 个答案:

答案 0 :(得分:35)

如果您想要放置或发布到URL,也有方法。您可以完全按照Rails生产日志中显示的参数复制/粘贴参数:

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

如果要发送自定义标题,可以添加可选的第三个参数:

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

答案 1 :(得分:3)

以上已更改为

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

同样对于表单我也必须提供authenticity_token。 所以在我的例子中,完整的命令是

app.post '/login', params: {email: 'my_email@gmail.com', password: 'abcd', authenticity_token: 'my_authenticity_token_generated_for_this_view' }