2011-07-06 2 views
0

레일 설치로 작동하도록 ajaxful-rating을 얻으려고 노력 중입니다. jQuery를 좋아하기 때문에 프로토 타입으로 앱을 설치하지 않았습니다.레일즈 업데이트 페이지 (프로토 타입 없음)?

튜토리얼 (그리고 다른 사람들이)

render :update do |page| 
    page.replace_html id, ratings_for(@entry, :wrap => false, :dimension => params[:dimension]) 
    page.visual_effect :highlight, id 
end 

그러나, 나는 '정의되지 않은 지역 변수 또는 메서드'ID를 '얻을 업데이 트를 렌더링하려면이 옵션을 사용할 말했다 ... 나는 보석을 얻을 수 있습니다 표준 수행하여 아약스없이 작업 :

respond_to do |format| 
    format.html { redirect_to @entry } 
    format.js { render :layout => false} 
end 

내가 항상 단지 jQuery.ajax 통화를 할 수있는 것 같아요,하지만 나는 가능한 응용 프로그램 내 레일에로 단단히이를 구현하고 싶습니다 - 내가 원하는 그것을 올바른 방법으로 배우는 것. :)

제발 도와주세요. 나는 구걸하는 데 확실히 의지했다.

+0

'page.replace_html id, ...'행에서 id 변수는 어디에 그리고 어떻게 설정됩니까? 여러분은'id'가 정의되지 않았다고 오류가 나고 있다고 말합니다. 그래서 그것은 여러분의 문제의 범위 일 수 있습니다. –

답변

1

내가 모든 것을하지만, 플러그인 JQuery와 레일에서 봐 가지고 (즉, 페이지가 모든 자바 스크립트에 의존하지 않고 작동합니다입니다) 분리하는 것을 선호하기 때문에 나는 그것을 시도하지 않은 http://rubygems.org/gems/jquery-rails

그것은 할 수 프로토 타입을 완전히 대체해야하기 때문에 원하는 것을 선택하십시오.

그러나 일부 초기화가 누락 된 것처럼 오류가 발생합니다. 대신 params[:id]을 사용해보세요.

+0

페이지가 javascript없이 작동합니다 -이 아약스를 얻는 방법을 모르겠습니다. –

+0

그래,하지만 jquery-rails gem을 시도해보고 문제가 해결되는지 확인하십시오. 또는 레일 3.1로 업그레이드하십시오. 이미 박스에서 빠져 나옵니다. (아직 시작 중이거나 아직 출시되지 않았기 때문에이 작업을 수행해야합니다. 그래서 내가 언급 한 이유조차 모르겠습니다.) –

+0

이미 내 gemfile에 포함 된 jquery-rails를 가지고 있고, 나는'bundle install '을 많이 실행한다. :/이상하지? 레일스에게 이것이 html이 아닌 js로 렌더링되어야한다고 말하기 위해해야 ​​할 일이 있습니까? –

1

id은 새로운 등급으로 대체하려는 등급 요소의 DOM ID로 간주됩니다. 따라서 id이 무엇인지 살펴보고 코드에서 id을 해당 문자열로 바꿉니다.

또한 RJS에 의존하지 않고도 수동으로 JS 코드를 작성할 수 있습니다. 보기에이 코드를 넣어이

$("#YOUR_ID_HERE").html("<%= escape_javascript ratings_for(@entry, :wrap => false, :dimension => params[:dimension]) %>"); 
$("#YOUR_ID_HERE").effect("highlight"); 

같은

뭔가 이름이 your_action.js.erb (물론 액션 이름으로 your_action 교체). 그런 다음 표준 respond_to 블록이 작동해야합니다.

+0

오른쪽! 나는 그것을했다. 그리고 지금 나는 많은 사람들이 나에게 침을 뱉어 준다. 그럼 내가 뭘해야하지? –

+0

코드를 보지 않고 말하기가 어렵습니다.지미가 제안한 것처럼 jquery-rails를 설치 했습니까? – egze

+0

내 편집 된 답변보기 – egze