2013-06-13 1 views
1

jQuery 모바일을 사용하기 위해 Rails 3 웹 앱을 변환 중이며 "원격"링크에 문제가 있습니다.jQuery Mobile이 URL을 받아 들일 때 원격 응답을 사용합니다.

respond_to do |format| 
    if foo.save 
    format.html { redirect_back_or_to blah_url } 
    format.json { render :json => {:status => "ok"} } 
    end 
end 

이 멋지고 작업하는 데 사용 :

= link_to "Text", foo_url, :method => :put, :remote => true 

, 서버, I는 다음과 같이 처리하고 있습니다 :

나는 다음과 같은 링크를 가지고있다. 그러나 jQuery Mobile을 추가 했으므로 컨트롤러 코드는 "json"대신 "html"브랜치를 통과하고 리디렉션으로 응답합니다.

나는 링크에

:data => { :ajax => "false" } 

를 추가하려고했습니다,하지만 난 같은 효과를 얻을.

jQuery를 모바일로, 나는이 헤더지고있어
Accept:application/json, text/javascript, */*; q=0.01 

동안 :

Accept:*/*;q=0.5, text/javascript, application/javascript, application/ecmascript, application/x-ecmascript 

을 나는이 변화를 생각 jQuery를 모바일 전에

은 UJS는 동의를 다음 헤더로 요청을 전송했다 헤더는 서버 측 동작의 변경 원인입니다. 클라이언트 측을 통해 디버깅 할 수 없었기 때문에 누가 정확히 무엇을하고 있는지 파악할 수 없었습니다. UJS는 분명히 뭔가를하고 있습니다. 일종의 "PUT 요청"을 얻고 있고, 상황이 적절하게 라우팅되는 등의 이유로 헤더를 변경하는 것이 확실하지 않습니다.

감사합니다.
다니엘 기본 remote: true으로

+0

문제를 발견하셨습니까? json 대신'format.js'를 사용하여 시도 했습니까? –

답변

0

format.js 절에 간다 (일부 .js.erb 템플릿을 다시 보낼에 대한 검색) format.html, 그리고 디폴트 및 HTML 템플릿을 다시 전송합니다.

당신이 JSON을 반환하려는 경우처럼, 당신의 link_to 호출 ”data-type” => :json을 사용해야합니다

<%= link_to 'Show Full Article', @article, :remote => true, "data-type" => :json %>

출처 : http://tech.thereq.com/post/17243732577/rails-3-using-link-to-remote-true-with-jquery-ujs