2010年09月20日
Rails3 Ajax では、link_to_remote じゃありません。
rails3 で Ajax をやってみた。
さっそくだめなかんじ。
link_to_remote を使うと以下のようなエラーが出る。
え、無いの?ということで調べてみると...
どうやら "link_to_remote" がなくなり "link_to" , "button_to" などに ":remote = true" オプションで実装するらしい。
ということで、やってみた。
適当に project を作成して以下が app/views/layouts/application.html.erb にあることを確認。
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 を作成し以下を書く。
routing とかで起こられない様に config/routes.rb も編集。(xxxxxxsは、コントローラ名に置き換え)
サーバを起動してブラウザでアクセスし "click" ボタンを押すと 「Ajax....」が赤文字の 「OK!!!!!」に切り替わる。
こんなに簡単なことなのにいろいろ脱線もあり時間がかかってしまいました。。
さっそくだめなかんじ。
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
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>"
);
"<font color="red">OK!!!!!</font>"
);
routing とかで起こられない様に config/routes.rb も編集。(xxxxxxsは、コントローラ名に置き換え)
match 'xxxxxxs/ajax' => 'xxxxxxs#ajax
サーバを起動してブラウザでアクセスし "click" ボタンを押すと 「Ajax....」が赤文字の 「OK!!!!!」に切り替わる。
こんなに簡単なことなのにいろいろ脱線もあり時間がかかってしまいました。。
【(カテゴリなし)の最新記事】
投稿者:tech|12:32