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

jib*_*iel 20 console ruby-on-rails

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

>> app.put '/users/2/'
=> 500
Run Code Online (Sandbox Code Playgroud)

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

Nak*_*kul 35

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

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

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

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

任何get/post/put/delete方法都会在控制台上显示其完整日志输出供您检查.如果您想获取返回的响应主体,HTTP状态或响应头等信息,这些信息也很容易:

app.response.body

app.response.status

app.response.headers.inspect
Run Code Online (Sandbox Code Playgroud)

资料来源:http://andyjeffries.co.uk/articles/debug-level-logging-for-a-single-rails-production-request


小智 5

以上已更改为

app.post '/foo', params: {"this" => "that", "items" => ["bar", "baz"]}
Run Code Online (Sandbox Code Playgroud)

同样对于表格,我也必须给出一个authenticity_token。所以在我的例子中,完整的命令是

app.post '/login', params: {email: 'my_email@gmail.com', password: 'abcd', authenticity_token: 'my_authenticity_token_generated_for_this_view' }
Run Code Online (Sandbox Code Playgroud)