POST 数据未显示在自定义路由的参数中

Dra*_*kic 1 post ruby-on-rails

我有这样的 Rails 路线

resources :agents do
  member do
    post :location_wifi
  end
end
Run Code Online (Sandbox Code Playgroud)

controllers/agents_controller.rb和这样的方法

def location_wifi
    puts params
    puts params.permit!

end
Run Code Online (Sandbox Code Playgroud)

我使用 JSON 有效负载向该路由发送 POST 请求,例如

{ "custom": {"model": "a"} }
Run Code Online (Sandbox Code Playgroud)

当我检查参数时,我看不到我发送到任何地方的 POST 有效负载。我在这里发送的数据没有存储在数据库中,而是发送到谷歌 API,并且该结果稍后被存储。由于这个原因,我没有它的模型。

这里发生了什么?为什么我无法访问 POST 负载?

Dra*_*kic 6

问题是我没有发送Content-Type=application/json标头,并且我的 API 路由命名空间定义了一个:defaults => { :format => 'json' }.

发送内容标题修复了它。