2011-07-06 10 views
0

私は(まだ)ajaxful-ratingを取得して、自分のレールのインストールに取り組んでいます。私はjQueryが好きなので、プロトタイプでアプリケーションをインストールしなかった。Railsの更新ページにはプロトタイプはありませんか?

チュートリアル(および他の皆は)しかし、私は「」未定義のローカル変数やメソッド 『ID』を取得...私は宝石を得ることができ、更新に

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

をレンダリングするためにこれを使用すると述べています標準の操作を実行して、AJAXなし作業:

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のレールを見て(つまり、ページがすべてではJavaScriptに依存せずに動作するはずです)デカップリングすることを好むので、私はそれを試していないhttp://rubygems.org/gems/jquery-rails

それが行う可能性がありますプロトタイプを完全に置き換えることになっているので、あなたが望むもの。

ただし、初期化が不足しているようなエラーが表示されます。代わりにparams[:id]を使用してみてください。

+0

ページはjavascriptなしで動作します - 私はちょうどこのajax-ifiedを得る方法を知らない。 –

+0

しかし、jquery-railsの宝石を試して、それが問題を解決するかどうか確認してください。それとも、それが既に箱から出ているレール3.1にアップグレードしてください(まだ始まっていて、まだリリースされていないので、私はそれについて言及していません:) –

+0

すでにjquery-railsが私のgemfileに入っています...そして、私は 'bundle install'をたくさん実行します。 :/奇妙な?これはjsとHTMLで表示されるべきであることをレールに伝えるために何かする必要がありますか? –

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

右!私はそれをし、今私はjsの束が私に唾を吐くのを得る。私は何をしますか? –

+0

コードを見ずに言うのは難しいです。Jimmyのようにjquery-railsをインストールしましたか? – egze

+0

私の編集した回答を参照 – egze

関連する問題