我正在发送HTTP POST请求:
data = { id: 1, name: 'ABC' }
uri = URI.parse('http://localhost:3000/events')
http = Net::HTTP.new(uri.host, uri.port)
http.post(uri, data.to_json)
我的路线文件:
Rails.application.routes.draw do
post '/events' => 'receiver#create'
end
而create方法如下所示:
def create
package = {
id: ,
name:
}
end
如何获取通过请求传递的数据值?我的目标是将其分配给create方法中的新哈希
您还应该在请求中设置Content-Type标头:
http.post(uri, data.to_json, {"Content-Type" => "application/json", "Accept" => "application/json"})
然后,您可以在控制器中使用params[:id]
和params[:data]
。
def create
@package = {id: params.require(:id), data: params.require(:data)}
head :no_content
end
head :no_content
将呈现空答复(以便您以后可以创建视图)。并params.require
确保提供了您的参数(否则控制器将返回400 Bad Request响应)–因此,以后您将不会收到一些奇怪的undefined method ... of nil
错误,以防您错过了请求中的参数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句