Rails活动资源:如何在请求体中发送post参数而不是查询字符串?

时间:2014-11-19 14:10:23

标签: ruby-on-rails json post activeresource

我使用rails activeresource调用一些post请求,但是所有参数都作为查询字符串发送,结果是被调用的url太长而且我得到WEBrick::HTTPStatus::RequestURITooLarge异常。

所以我需要在请求体中发送参数,但是我找不到如何做到这一点。

非常感谢

3 个答案:

答案 0 :(得分:6)

要在activeresource中发送帖子请求,您应该参考the documentation

例如,你可以这样做

#Entity.post(custom_method_name, options = {}, body = '')
Company.post(:add_role, nil, {user_id: 1, role_id: 2}.to_json)

告诉我你是否需要其他任何东西。

答案 1 :(得分:0)

尝试安装thin服务器而不是Webrick,请阅读这些answer-1answer-2

或者,将webrick.rb文件添加到config\initializers目录,并添加以下代码:

if defined?(WEBrick::HTTPRequest)
  WEBrick::HTTPRequest.const_set("MAX_URI_LENGTH", 10240)
end

另请阅读answer

答案 2 :(得分:0)

所以,我认为你在链接中做了帖子请求。默认情况下,Anchor将创建查询参数。但是如果你使用按钮,那确实在post方法中发送数据作为请求体发送,就像post方法一样。请尝试以下代码段:

button_to 'Your post requesting link name', something_path(:your_params => :will be here) 

让我知道这是否有效!

感谢。