アフィリエイト広告を利用しています

広告

posted by fanblog

Rails3 Ajax では、link_to_remote じゃありません。

rails3 で Ajax をやってみた。
さっそくだめなかんじ。
link_to_remote を使うと以下のようなエラーが出る。
undefined method `link_to_remote' for #<#:0x1600d0>

え、無いの?ということで調べてみると...
どうやら "link_to_remote" がなくなり "link_to" , "button_to" などに ":remote = true" オプションで実装するらしい。
:remote => true - This will allow the unobtrusive JavaScript driver to make an Ajax request to the URL in question instead of following the link.
The drivers each provide mechanisms for listening for the completion of the Ajax request and performing JavaScript operations once they’re complete


ということで、やってみた。

適当に project を作成して以下が app/views/layouts/application.html.erb にあることを確認。
<%= javascript_include_tag :defaults %>

rails3 では、 project 作成時 に default で作成されてるので必ずあるはず。

次に、index に以下を実装。

% vi app/views/students/index.html.erb

<%= button_to "click", { :action => :ajax }, :remote => true %>
<div id='aaa'>Ajax....</div>


これで Ajax リクエストの準備が整う。

次に、受け取り側。

index.html.erb と同じ場所に ajax.js.erb を作成し以下を書く。
$("aaa").update (
"<font color="red">OK!!!!!</font>"
);


routing とかで起こられない様に config/routes.rb も編集。(xxxxxxsは、コントローラ名に置き換え)
match 'xxxxxxs/ajax' => 'xxxxxxs#ajax


サーバを起動してブラウザでアクセスし "click" ボタンを押すと 「Ajax....」が赤文字の 「OK!!!!!」に切り替わる。

こんなに簡単なことなのにいろいろ脱線もあり時間がかかってしまいました。。
   
×

この広告は30日以上新しい記事の更新がないブログに表示されております。