2016-08-15 1 views
0

레일즈 UJS를 사용하고 있습니다. remote: true과 ajax 링크가 있으며 POST 요청을 제출합니다. 폼에 언급했다Rails UJS 'ajax : before'후크에 링크 할 폼 params를 추가합니다.

$container.on('ajax:before', 'a[data-remote=true]', function(event, xhr, settings) { 
    $(this).append($('<input />',{name: 'hidden_values',value: $(":hidden").serialize()})); 
}) 

this 경우,이 작업 것 : 문제는 내가 ajax:before 사용자 지정 이벤트 트리거 폼 PARAMS를 추가 할 필요가있다. 그러나 링크를 참조하고 있으므로 양식 매개 변수를 링크에 추가 할 수 없습니다.

이 해결책은 무엇입니까?

+0

글쎄, 디자인을 변경하고 [ 'button_to'] (http://apidock.com/rails/ActionView/Helpers/UrlHelper/button_to) 레일 도우미를 사용하면 U가 코드를 단순화 할 수 있습니다. 이것에는'param' 키가 있기 때문에. –

답변

0

실용적인 해결책을 찾았습니다. 그래서 같이 before:ajax 사용자 정의 이벤트 트리거의 데이터-PARAMS 속성을 추가 : 업데이트 링크의 데이터 PARAMS 속성을하려는 경우

보조 노트에
$container.on('ajax:before', 'a[data-remote=true]', function(event, xhr, settings) { 
    $(this).attr('data-params', 'abc=def&efg=hij') 
}) 

,하는이 있음을 확인해야합니다 내용을 포함하고 데이터 PARAMS에서 기존 데이터를 제거 문자열은 첫 번째 특성 : 그것은 button_to를 사용하는 것이 좋습니다했다

if(data_params.length > 0){ 
    $link.removeData('params'); 
    $link.attr('data-params',data_params); 
} 

는 의견 도우미 레일, 나는 그것이 너무 작동 할 것이라는 점을 생각한다. 유일한 목적은 특정 목적을 위해 링크를 사용하는 것입니다. 목적은 부트 스트랩 모달 헬퍼를 사용하는 것입니다. 그래서 button_to가 나를 위해 작동하는지 확실하지 않습니다. 그러나, 나는 그것을 시도 할 것이다.

+0

'button_to '도 작동 할 것이고, 기본적으로'POST'는'POST' 요청을위한 완벽한 도구입니다. 'link_to '는'GET'을위한 것이지만, 우리는 _method_를 지정할 수 있습니다. 그러나 나는'link_to'를 가지고있는 것처럼'button_to'를 디자인 할 수있을 것이라고 확신합니다. :) –

관련 문제