2015-01-03 3 views
0

사용자가 뭔가를 게시 할 수있는 곳의 앱을 만들고 있는데, Ajax를 사용하여 인덱스 페이지에 게시물이 표시되므로 새로 고칠 필요가 없으며 게시물을 게시하는 사용자에게 잘 작동합니다. , 웹 사이트를 탐색하는 다른 사용자는 여전히 새 게시물을 보려면 새로 고침해야합니다.레일즈 Ajax 요청이 다른 컴퓨터에 나타나지 않습니다.

ef create 
    @post = current_user.posts.build(post_params) 

    @post.save 
    respond_to do |format| 
     format.html { redirect_to @post, notice: "Study request successfully added" } 
     format.js {} 
     format.json { render json: @post, status: :created, location: @post } 
    end 
end 

그리고 여기가 자바 스크립트

$("<%= escape_javascript(render @post) %>").prependTo("#container"); 

내가 무엇을 놓치고있다

def index 
    @posts = Post.all.order('id DESC') 
    @post = Post.new 
end 

D : 여기

컨트롤러입니까?

+1

''faye-rails','firehose' 또는'private_pub'과 같은 보석을보십시오. 또는 '푸셔'와 같은 서비스. – RocketR

+0

대단히 감사합니다. –

답변

1

페이지에 긴 폴링을 구현하거나 웹 소켓을 사용해야합니다.

다른 브라우저는 이미로드되어 추가 요청을받지 않으므로 마술처럼 업데이트되지 않습니다. (페이지를 제공하는 서버와 해당 페이지를로드하는 브라우저간에 차이가 있음).

페이지에 긴 폴링 또는 웹 소켓을 구현하면 브라우저가 서버의 변경 사항 또는 수신 데이터를 계속 수신해야합니다.

이렇게하면 Faye, (github version of faye)은 나에게 트릭을 과거에 한 것처럼 보였습니다. (당신 레일 애플 리케이션 외의 다른 서버를 설치해야합니다 레일 애플 리케이션에서 전화를 변경하고 청취 클라이언트에 밀어) (그것은 또한 긴 폴링을 원할 경우 통합).

또한 자바 스크립트로 주기적으로 변경 사항을 폴링 할 수 있습니다 (간단한 setTimeout, 1 초마다 또는 거의 동일한 결과가 나타남).

+0

나를 길로 안내해 주셔서 감사합니다. 폴링 또는 웹 소켓을 쉽게 만드는 보석? –

+0

RailsOuter, 수정 된 게시물 참조. – Rebirth

관련 문제