2012-06-20 2 views
0

저는 레일즈 앱에서 AJAX를 사용하는 법을 배우려고합니다. 그래서 나는 간단한 것을 시작하기로 결정했습니다. 나는 사용자가 블로그 게시물에 투표 할 수있는 블로그 앱을 가지고있다.레일스에서 ​​.rjs 파일을 볼 수 없습니다.

posts_controller.rb 여기

class PostsController < ApplicationController 
    (...) 
    def vote 
    post = Post.find(params[:id]) 

    if current_user.voted_on?(post) 
     current_user.unvote_for(post) 
    else 
     current_user.vote_for(post) 
    end 

    respond_to do |format| 
     format.html { redirect_to post_path(post) } 
     format.js 
    end 
    end 
end 

및 내 posts#view에 대한 링크 코드 :

view.html.erb

<%= link_to "Vote", vote_post_path(post.id), :remote => true %> 
여기 posts#vote 내 코드입니다

이제 내 Vote 링크를 클릭하면 posts#vote 액션 작품과 투표는 그러나 나는 오류를 받고 있어요, 주조된다

ActionView::MissingTemplate (Missing template posts/vote, application/vote with {:handlers=>[:haml, :coffee, :erb, :builder], :locale=>[:en], :formats=>[:js, :html]}.

views/posts 폴더 만 볼 수없는 이유 레일 (빈) vote.rjs 파일이 있습니다. 오류에 따르면 레일이 검색되는 파일 확장자는 .haml, .coffee, .erb.builder입니다. 그 목록에 .rjs 확장자도 없어야합니까? 미리 감사드립니다.

+0

jquery 대신 prototype.js를 사용하고 .rjs 지원을 원하면 prototype-rails를 설치하십시오. – Viren

답변

2

파일 이름은 vote.js.erb이어야합니다. 레일스는 .rjs 확장자를 사용하지 않습니다.

1

.rjs 확장자는 원래 RailsPrototype JS 라이브러리에 사용되었습니다.

Rails 3.1으로 기본 라이브러리는 JQuery로 전환되었습니다.

레일 프로젝트에서 .rjs을 사용하려면 JQuery 대신 Prototype을 사용하는 것이 좋습니다. 그 보석은 prototype-rails입니다.

관련 문제