2010-08-21 2 views
23

나는 (분명히) 간단한 문제에 봉착했습니다. 로 반환됩니다 "i_like_it.js.erb"방법 => PUT (이것은 아약스 호출입니다 :respond_to에서 다른 Javascript 파일 렌더링

"i_like_it"내 경우
def i_like_it 
    @event = Event.find(params[:id]) 

    ... # logic 

    respond_to do |format| 
     format.js 
    end 
    end 

가 불려 내 event_controller에서 은 내가 i_like_it 액션이 스크립트는 그것은 브라우저에서 실행 줘야 해.)

나는 자바 스크립트가 다른 이름 (안 i_like_it.js.erb)로 파일을 렌더링하고 싶은,하지만 난 어떤 옵션을 발견하지 않았습니다 Rails API docs.

respond_to do |format| 
    format.js { render ??? } 
end 

레일과 바닐라 자바 ​​스크립트를 렌더링 할 수있다 : JS 옵션,하지만 나는 컨트롤러에 사용 자바 스크립트를 원하지 않는다.

의견이 있으십니까?

render :template => 'your_file_here' 대신 render에 대한 문서

의 시도 알레산드로 DS

답변

7

을 주셔서 감사합니다 너무 다른 옵션 몇 가지를 설명합니다.

42

당신이 할 경우

respond_to do |format| 
    format.js { render :action => "different_action" } 
end 

이 RAILS_ROOT/응용 프로그램/뷰를로드/당신의 컨트롤러를 /different_action.js.erb을 대신.

format.js 블록은 .js 요청 인 경우 기본적으로 적절한 헤더를 설정하고 기본적으로 .html.erb 대신 .js.erb 또는 .js를 찾습니다.

render : file을 사용하여 파일 시스템에서 JS가있는 임의의 파일을 렌더링하거나 렌더의 다른 일반적인 옵션을 사용할 수도 있습니다. There are a few of them. 내 경우

+0

내가 렌더링 한 후, 다른 컨트롤러의 JS 파일을 렌더링 할 필요가 : 템플릿 => 'my_file을'더 적합, 는 알레산드로 DS –

+0

감사합니다 그리고 나는 my_javascript.js를 렌더링합니다. 다른 컨트롤러의 erb? – zer0uno

+0

컨트롤러와 관련이없는 공유 폴더와 같은 다른 폴더에서 파일을 호출하는 방법은 무엇입니까? 상대 경로는 어디에서 시작 하나 예를 들어 줄 수 있습니까 (예 : root/app/views/shared/vote.js.erb)? – ahnbizcad