我使用rails activeresource调用一些post请求,但是所有参数都作为查询字符串发送,结果是被调用的url太长而且我得到WEBrick::HTTPStatus::RequestURITooLarge
异常。
所以我需要在请求体中发送参数,但是我找不到如何做到这一点。
非常感谢
答案 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-1,answer-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)
让我知道这是否有效!
感谢。