Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rails向请求添加额外的JSON_Json_Ruby_Ajax_Http_Ruby On Rails 4 - Fatal编程技术网

Rails向请求添加额外的JSON

Rails向请求添加额外的JSON,json,ruby,ajax,http,ruby-on-rails-4,Json,Ruby,Ajax,Http,Ruby On Rails 4,我在Rails日志中注意到以下类型的条目: Parameters: {"notes"=>"test", "name"=>"AAAA", "city"=>"city", "country"=>"country", "label"=>{"name"=>"AAAA", "city"=>"city", "country"=>"country", "notes"=>"test"}} Unpermitted parameter: label 我已经编

我在Rails日志中注意到以下类型的条目:

Parameters: {"notes"=>"test", "name"=>"AAAA", "city"=>"city",  "country"=>"country", "label"=>{"name"=>"AAAA", "city"=>"city", "country"=>"country", "notes"=>"test"}}
Unpermitted parameter: label
我已经编写了两个不同的客户端,它们将JSON发送到我在Apache上运行的Rails API应用程序。一个是角度/省道,另一个是MacOS的Cocoa Swift。两者都只发送JSON的第一部分(即最多“label”=>)。当我不发送任何JSON数据时(例如,{“label”=>{}),我甚至在一个全选请求中看到它。除了警告之外,额外的数据不会导致任何问题。你知道如何去掉重复的JSON吗?我知道如何摆脱这个警告

生成请求的我的Swift代码:

    let url = domain + rest
    var request = URLRequest(url: URL(string: url)!)
    request.httpMethod = "POST"
    request.setValue("application/json", forHTTPHeaderField: "Accept")
    request.setValue("application/json", forHTTPHeaderField: "Content-Type")
我不会在请求的末尾添加“.json”

耙道:

         labels GET    /labels(.:format)                    labels#index
                POST   /labels(.:format)                    labels#create
          label GET    /labels/:id(.:format)                labels#show
                PATCH  /labels/:id(.:format)                labels#update
                PUT    /labels/:id(.:format)                labels#update
                DELETE /labels/:id(.:format)                labels#destroy
我的一个控制器:

class LabelsController < ApplicationController

  def create
    @label = Label.new(label_params)
    if @label.save
      render :json => @label
    else
      render json: @label.errors, status: :unprocessable_entity
    end
  end

  ...
  private

  def label_params
    params.permit(:name, :city, :country, :notes)
  end
end
class LabelsController@label
其他的
呈现json:@label.errors,状态::无法处理的_实体
结束
结束
...
私有的
def标签参数
参数许可证(:名称,:城市,:国家,:注释)
结束
结束

这是一个rails强参数错误。您需要告诉控制器您希望收到标签param

控制器中的类似内容:

def person_params
  params.require(:foo).permit(:label)
end

如果您使用控制器代码进行注释,我可以给您一个更具体的答案。

这是一个rails强参数错误。您需要告诉控制器您希望收到标签param

控制器中的类似内容:

def person_params
  params.require(:foo).permit(:label)
end

如果您对控制器代码进行评论,我可以给您一个更具体的答案。

我认为这与强参数有关,您如何清理控制器上的参数?我认为这与强参数有关,您如何清理控制器上的参数?很抱歉,我没有更清楚地回答这个问题。我想消除重复的JSON数据。我最近一直在看我的日志,我希望它更干净。很抱歉,我没有更清楚的问题。我想消除重复的JSON数据。我最近一直在看我的日志,我希望它更干净。