2010-03-23 5 views
4

레일에서 AJAX를 사용하는 것이 처음입니다 (알고 있습니다 ... 알고 있습니다 ...), 은 긍정적입니다. 나는 잘못된 호출이거나 어떤 것. 하지만 난 사냥 했어. 찾지 못해.AJAX로 부분 레일 업데이트

어쨌든, 나는 빠른 부분 (이것은 올바르게 작동 중입니다)을 렌더링 한 다음 AJAX 호출로 새로 고침하고 싶습니다. 내가 생각했던 것은 다음과 같습니다.

<div id="two_on_two"><%= render :partial => "quickread" %></div> 
<p><%=link_to_remote "load two new stories", :url => {:partial => 'quickread'}, :update => 'two_on_two' %></p> 

방금 ​​페이지가 튀어 나와 (빠른 플래시와 빈 브라우저 창). 내가 AJAX 호출에서 partial : action으로 전환하면 해당 two_on_two div에 "template missing"이 동적으로로드됩니다.

분명히 여기서 쉽게 찾을 수없는 것이 있습니다. 맞습니까?

정말 고마워요!

http://apidock.com/rails/ActionView/Helpers/PrototypeHelper/link_to_remote

당신은 정확하게 URL을 지정해야합니다 및 컨트롤러 액션에 RJS을 정의

+1

안녕하세요, 귀하의 최종 해결책은 무엇입니까? 나는에 변수를 전달하는 방법을 알아낼 수 없습니다, 그러나 부분 => "quickread" 끝 : – MrWater

답변

2

첫째, 읽기 API (컨트롤러, 액션, 다른 PARAMS, 부분 없습니다!).

IE : 당신이 링크 이름을 클릭 할 때

def baz 
    respond_to do |format| 
    format.js{ render :update do |page| 
     page.replace_html 'two_on_two', 'Hello world!' 
    end} 
    end 
end 

bars_controller.rb

<div id='two_on_two'></div> 
link_to_remote 'Link Name', :url => {:controller => "bar", :action => "baz"} 

index.html.erb 그래서, 당신의 two_on_two의 사업부에 "안녕하세요 세계 텍스트를"이 나타납니다.

+0

나는 당신의 방법을 사용하여 텍스트 또는 일부를로드 할 수 있습니다,하지만 난이 수행 할 수 있습니다 렌더링 데프 로더를 그 부분. blabla가 변수의 이름이 될 경우 : –

+0

'render : partial => "quickread", : locals => {blabla => @blabla}를 사용하십시오. – nathanvda