2015-02-02 2 views
0

난 레일 애플 리케이션에 간단한 HTTP 요청을 만들려고 노력하고있어. 난 내 레일 응용 프로그램에 HTTP POST 요청을 할 때 문제가있다, 코드는 다음과 같습니다매개 변수의 추가 인용문

uri = URI.parse("http://localhost:4000/posts") 
http = Net::HTTP.new(uri.host, uri.port) 
request = Net::HTTP::Post.new(uri.request_uri) 
request.set_form_data(:post=> {"name" => "My query", "title" => "50"}) 
response = http.request(request) 

내가 들어오는 POST 요청에 대한 콘솔에 보면, 출력은 다음과 같습니다

Started POST "/posts" for 127.0.0.1 at 2015-02-02 16:14:12 +0100 
Processing by PostsController#create as */* 
    Parameters: {"post"=>"{\"name\"=>\"My query\", \"title\"=>\"50\"}"} 
Completed 500 Internal Server Error in 1ms 

NoMethodError (undefined method `permit' for "{\"name\"=>\"My query\", \"title\"=>\"50\"}":String): 
    app/controllers/posts_controller.rb:72:in `post_params' 
    app/controllers/posts_controller.rb:27:in `create' 

봐 밀접하게 매개 변수에. 왜 ist는 따옴표를 추가합니까? 이 문제를 해결하는 방법?

답변

0

문자열 화 된 JSON 객체를 보내려고하기 때문에. set_form_data가하는 일을 잘 모르지만 요청을 .to_json으로 변환해야합니다. 참조 번호 here에 대한 질문을보십시오.