Rails的wrap_parameters不起作用

时间:2012-06-18 01:42:20

标签: ruby-on-rails

我在wrap_parameters format: [:json]中有wrap_parameters.rb。我使用jQuery.post('photos', {name: 'flower'});发布到服务器。在photos#create中,params

{"name"=>"flower", "controller"=>"photos", "action"=>"create"}

但我期待

{"name"=>"flower", "controller"=>"photos", "action"=>"create", "photos"=>{"name"=>"flower"}}

我错过了什么?

2 个答案:

答案 0 :(得分:6)

jQuery.post('photos', {name: 'flower'});调用将params发布为“标准”形式(application / x-www-form-urlencoded或multipart / form-data),而不是json。所以wrap_parameters format: [:json]不起作用。

尝试删除format: [:json]或发布json数据,例如

$.ajax({
  url:'photos',
  type:"POST",
  data:JSON.stringify({name: 'flower'}),
  contentType:"application/json; charset=utf-8",
  dataType:"json",
  success: function(){
    ...
  }
})

答案 1 :(得分:0)

您必须使用标头“Content-Type”:“application/json”来执行您的发布请求。