2011-08-26 4 views
3

레일 3과 jquery를 사용하여 게시 # show 페이지에 대한 간단한 3 탭 탐색을 설정하고 클릭하면 _post _comments 및 _related partials가 뷰에 렌더링됩니다.레일 3/jquery - 아약스를 사용하여 부분 렌더링하는 탭

이 부분에는 현재 컨트롤러 동작이 없습니다.

이러한 Ajax 호출을 처리하는 가장 깨끗한 레일 방법은 무엇입니까?

나는 이것을 시도했지만 작동하지 않습니다 :

포스트 컨트롤러 :

def tab 
    respond_to do |format| 
    format.js 
    end 
end 

포스트 쇼보기 :

<%= link_to "Comments", {:action => 'tab'}, :remote => true %> 

/views/posts/tab.js.erb

$('#postshow').html("<%= escape_javascript(render('comments')) %>"); 

그러나 내가 이렇게하면 whe n 내 Track Show 페이지를 열려고 시도합니다.이 오류로 인해 키보드가 멈추는 경우가 발생했습니다. "경로 일치 {: action =>"tab ", 컨트롤러 =>"posts "}"

나는 탭 그게 tab.js.erb를 렌더링해야합니다 ...하지만 더 중요한 것은 이것은 세 부분들 사이에서 전환하는 것만 큼 조금 어색한 것처럼 보입니다.

도움을 주시면 감사하겠습니다. 감사.

답변

0

이 그것을 얻었다. 그냥 routes.rb에 리소스를 추가하는 데 필요한 ... 그 부분은 마법처럼 일어난 줄 알았는데. routes.rb

resources :posts do 
    ... 
    member do 
    get 'tab' 
    end 
end 

와의

넣어이 지금은 길을 찾아 자바 스크립트를 렌더링합니다.

누군가가이 게시물을 읽고 렌더링 된 부분에 대한 아약스 링크를 설정하는 방법을 더 깔끔하고 간단하게 지적 할 수 있다면 매우 멋질 것입니다.

1

귀하의 조치가가 PostsController에있다, 그래서 당신은 작성해야 :

확인
<%= link_to "Comments", {:controller => "posts", :action => "tab"}, :remote => true %> 
+0

내 코드가 잘못되어 실제로 코드를 잘못 복사했습니다. 단지 내 게시물에 고정 시켰습니다. 게시물 컨트롤러를 사용하고 있는데 '경로 일치 안함 {: 컨트롤러 =>'게시물 ', : 액션 =>'탭 '}'오류가 표시됩니다. 나는': controller => 'posts "를 link_to 블록에 넣어 보았는데 도움이되지 못했습니다. 나는 틀린 많은 것을하고있다라고 확신한다. 그러나 내가 왜 지위 통제 장치에서 탭 길을 가지고있을 때 그것이 '어떤 길 일치도 말하지 않을 것이냐? 저를 혼란스럽게합니다. – tuddy

+0

그러면 routes.rb에 문제가 있습니다. 이 파일의 라인을 여기에 게시 할 수 있습니까? – bender

+0

어, 나는 당신이 이미 문제를 해결했다는 것을 눈치 채지 못했습니다 ... – bender

관련 문제