2011-02-10 8 views
4

私は初めてRuby on Railsを使用しています(Ruby on Rails 3とRuby 1.9.2が正確です)。Ruby on Rails 3 - AJAXによるHTMLをRJSの方法でロードする(jQuery + UJS)

私はこれまでのところとても好きです。 Ruby on Rails 2.xでRJSを使用する方法に関する素晴らしい記事を見つけました。それ以来、レールの開発者は、レールのプロトタイプの依存性を取り除いています(これは素晴らしいことです)。しかし、そうすることによって、RJSの機能とlink_to_remoteも削除しました。これで、link_toを引数として使用することになっていますが、これはrails 2.xのlink_to_remoteメソッド+ render(:update)のような簡単な方法で遠隔操作を行うための機能はあまりありません。

私はjQuery for UJSを設定しました(UJSは、あなたが選択したjavascriptライブラリでRJSのような機能を作る能力です(Prototype以外のライブラリを使うことができます))。

私の質問です。

AJAXを介してHTMLをリモートから取得し、divタグ(例として)の内部にレンダリングする最適な方法は何ですか?レンダリング(:更新)などを使用して、古いRJSと同様の機能を使用してそれを実行できるようにしたいと考えています。

すべてのサポートは大歓迎です。 RJSの機能がとてもいいと思われるので、DOMにリモートでHTMLをロードできるようにjQueryイベントを手作業でバインドする必要はありません。

ありがとうございました。

答えて

4

私は通常私のjs.erbファイルからパーシャルを呼び出す:

$('#container').html("<%= escape_javascript(render(:partial => 'content')) %>"); 

そして、私は部分的にしたい適切なHTML。

htmlが少なければ、あなたにとって意味がないかもしれません。この場合、js.erbファイルに直接書き込んでください。

あなたはこの短いチュートリアルを見て持つことができる:http://blog.bernatfarrero.com/jquery-and-rails-3-mini-tutorial/

+0

お返事ありがとうございます!あなたは命の恩人です。 :-) –

+0

あなたは大歓迎です:) – apneadiving

+0

私はRuby on Railsの新機能ですが、このチュートリアルについて私を混乱させるのは、ロジックがフォーム内のリンク/ボタン/アクションをユーザーが「クリック」していることです。 @Kristinnは、フォームを使用せずにdiv **にコンテンツを "自動的に"読み込むという質問にどう答えますか?言い換えれば、コンセプトや文字通り、クリスティンを明らかに新しいものにしていないことを、彼のプロジェクトに適用するにはどうすればいいですか?ありがとう!! – Rick

1

また、あなたがRJSを使用することができます(Railsの3はまだRJSを持っている)が、私は同様js.erbファイルに直接書き込む好みを。

render :update do |page| 
    page.replace_html 'id_of_dom_obj', :partial => 'partial_path' 
end 
+0

これは、Rails 3でレンダリングするためのビュー "update"を見つけようとしますが、テンプレートエラーがありません。 – highBandWidth

+0

'gem"プロトタイプ・レールをGemfileに追加し、 'render:update'が再び動作します – knoopx

関連する問題