[RUBY-ON-RAILS] 내가 jQuery를 사용하여 레일에 데이터를 입력하려면 어떻게
RUBY-ON-RAILS내가 jQuery를 사용하여 레일에 데이터를 입력하려면 어떻게
나는 모습이 좋아하는 JQuery와 아약스 PUT 요청을 보내려고하고있다 :
$.ajax({
type: "PUT",
url: '/admin/pages/1.json',
data: { page : {...} },
dataType: 'json',
success: function(msg) {
alert( "Data Saved: " + msg );
}
});
그러나 나는 다음과 같은 오류가 발생합니다 :
The error occurred while evaluating nil.name
/Library/Ruby/Gems/1.8/gems/activesupport-2.3.2/lib/active_support/xml_mini/rexml.rb:29:in `merge_element!'
/Library/Ruby/Gems/1.8/gems/activesupport-2.3.2/lib/active_support/xml_mini/rexml.rb:18:in `parse'
(__DELEGATION__):2:in `__send__'
(__DELEGATION__):2:in `parse'
/Library/Ruby/Gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/hash/conversions.rb:154:in `from_xml' ... ...
레일처럼되어 XML로 PARAMS을 구문 분석하려고하지만 내가 JSON을 사용하려면!
나는 레일에 JSON을 넣어 무엇을 할 것인가?
해결법
-
==============================
1.PUT 및 DELETE가 모든 브라우저에서 지원되지 않습니다, RoR에 요청을 처리하는 방법을 나타냅니다 데이터이라고 _method에 추가 매개 변수를 전달 RubyOnRails 지원.
PUT 및 DELETE가 모든 브라우저에서 지원되지 않습니다, RoR에 요청을 처리하는 방법을 나타냅니다 데이터이라고 _method에 추가 매개 변수를 전달 RubyOnRails 지원.
$.ajax({ type: "POST", url: '/admin/pages/1.json', data: { _method:'PUT', page : {...} }, dataType: 'json', success: function(msg) { alert( "Data Saved: " + msg ); } });
-
==============================
2.jQuery를에있는 데이터 유형 PARAM을 보내는 것이 아니라, 당신이 답이 될 것으로 기대 형식 (예, 매우 가난한 이름이다)을 지정합니다. 당신은 형식 다른 다음 응용 프로그램 / x-www-form-urlencoded를 사용한다적인 contentType PARAM에서 서버로 데이터를 전송합니다. 당신은 또한 당신의 데이터를 직렬화해야합니다
jQuery를에있는 데이터 유형 PARAM을 보내는 것이 아니라, 당신이 답이 될 것으로 기대 형식 (예, 매우 가난한 이름이다)을 지정합니다. 당신은 형식 다른 다음 응용 프로그램 / x-www-form-urlencoded를 사용한다적인 contentType PARAM에서 서버로 데이터를 전송합니다. 당신은 또한 당신의 데이터를 직렬화해야합니다
$.ajax({ type: "PUT", url: '/admin/pages/1.json', data: JSON.stringify({...}), contentType: 'application/json', // format of request payload dataType: 'json', // format of the response success: function(msg) { alert( "Data Saved: " + msg ); } });
-
==============================
3.좋아, 실제로 내 JSON 데이터는 페이지 키, 내 실수를하지 않았다. 그게 왜 올바르게 구문 분석되지 않았습니다. 하지만 지금은 "[개체 개체]"대신에 잘 구문 분석 JSON 객체의 페이지 키 값으로 문자열을 얻을.
좋아, 실제로 내 JSON 데이터는 페이지 키, 내 실수를하지 않았다. 그게 왜 올바르게 구문 분석되지 않았습니다. 하지만 지금은 "[개체 개체]"대신에 잘 구문 분석 JSON 객체의 페이지 키 값으로 문자열을 얻을.
어디에서 찾아야한다 : JQuery와 또는 레일을?
편집하다:
나는 스크립트로 JSON 객체를 stringifying 내 문제는 여기에서 찾아 해결했습니다 www.json.org/js.html를 :
$.ajax({ type: "PUT", url: '/admin/pages/1.json', data: { page : JSON.stringify( {...} ) }, dataType: 'json', success: function(msg) { alert( "Data Saved: " + msg ); } });
레일에 측면 JSON의 보석이 필요해야합니다. 컨트롤러에서 :
params[:page] = JSON.parse params[:page] if params[:page].is_a? String
-
==============================
4.
var id = $('#route_id').val() $.ajax({ type: 'PUT', url: '/routes/'+ id, data: $('#markerform').serializeArray(), dataType: "JSON", success: function(data) { console.log(data); } });
-
==============================
5.내가 jQuery를 / 레일 비슷한 문제 [개체 개체]를했지만, HTML로, 오히려 JSON보다. 아마도 이것은 도움이 될 것입니다 -
내가 jQuery를 / 레일 비슷한 문제 [개체 개체]를했지만, HTML로, 오히려 JSON보다. 아마도 이것은 도움이 될 것입니다 -
[개체 개체]의 PARAM
data: { lesson: { date: drop_date } }
공과 PARAM [일자]
data: { "lesson[date]": drop_date }
도움이 되었기를 바랍니다 -
-
==============================
6.당신은 아마 jQuery를에 요청 헤더를 설정해야합니다.
당신은 아마 jQuery를에 요청 헤더를 설정해야합니다.
jQuery.ajaxSetup({ 'beforeSend': function(xhr) { xhr.setRequestHeader("Accept", "text/javascript"); } })
from https://stackoverflow.com/questions/907910/how-do-i-put-data-to-rails-using-jquery by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 정의되지 않은 메서드`#을 위해 '얻을 <RSpec에 :: 코어 :: ExampleGroup :: Nested_1 : 0x00000106db51f8> (0) | 2020.02.19 |
---|---|
[RUBY-ON-RAILS] 어떻게 부하는 루비에 필요 다릅니 까? (0) | 2020.02.19 |
[RUBY-ON-RAILS] 3 개 비활성화 세션 쿠키를 레일 (0) | 2020.02.19 |
[RUBY-ON-RAILS] 어떻게 MySQL과 포스트 그레스 모두 소문자를 구분하지 쿼리를 작성합니까? (0) | 2020.02.18 |
[RUBY-ON-RAILS] belongs_to 관계와 일에 fields_for와 accepts_nested_attributes_for 얻기 (0) | 2020.02.18 |