2012-11-20 4 views
0

) 저는 크로스 도메인 아약스를 호출하여 레일 앱에서 데이터를 가져옵니다. 그것을 위해 나는 매력처럼 작동하는 발견 멋진 방법을 사용했습니다. 그러나 Rails는 관련 제휴를하지 않습니다. 내가 그 정보를 원하기 때문에 나는 format.js를 바꾸려고 노력했으나 올바른 출력을 포맷하는 데는 실패했다. 이것은 내가 나의 여행에 지금 가지고있는 것입니다js 응답 (예 :

(완벽하게 작동) 방법을 보여

respond_to do |format| 
    format.html # show.html.erb 
    format.js { render_json @trip.to_json } 
end 

을하지만 난 @ trip.triplocations aswell를 렌더링합니다. 하지만 어떻게해야할지 모르겠다. 누가 이걸 아는 사람 있습니까?

이런 경우에, 여기 내가있는 멋진 방법입니다 : 사전에

감사 :

def render_json(json, options={}) 
    callback, variable = params[:callback], params[:variable] 
    response = begin 
    if callback && variable 
     "var #{variable} = #{json};\n#{callback}(#{variable});" 
    elsif variable 
     "var #{variable} = #{json};" 
    elsif callback 
     "#{callback}(#{json});" 
    else 
     json 
    end 
    end 
    render({:content_type => :js, :text => response}.merge(options)) 
end 

(http://www.sitepoint.com/json-p-output-with-rails/ 소품으로 이동)!

답변

1

:

format.js {render :json=> @trip.as_json(:include => :triplocations)} 

은 (BTW 당신이 정말로이 render_json 방법을해야합니까?) 방법은 연결을 포함됩니다 포함한다. 높은 수준에서도 효과가 있습니다. http://api.rubyonrails.org/classes/ActiveModel/Serializers/JSON.html#method-i-as_json

+0

확증 된 크로스 도메인 액세스 (jsonp)가 있습니다. 주어진 링크를 읽고 답변 해 주셔서 감사합니다! – CaptainCarl

관련 문제