2011-07-26 13 views
0

ボタンを押すとRuby関数を実行できるように、html.erbの中にRailsコードを埋め込む方法が不思議です。私は周りを探索しましたが、これが不可能な場合、どのようにRuby on Railsデータベース内の変数を更新するJavaScript関数を実行できますか?ボタンをクリックしてRuby on Railsコードを実行

+0

Rubyの機能は何ですか? – Jeriko

+0

データベースの変数を1つインクリメントする – jon

答えて

12

私たちはウェブの仕組みについて少し話をする必要があると思います。心配ない;これは、多くの人々が最初にWebアプリケーションを構築するときに混乱します。

ここには2種類のコードがあります。最初のタイプはサーバー側コードで、サーバー上で実行されます。この場合、Rubyコードであり、ユーザーはそれを見ることができません。このサーバー側コードは、クライアント側コードのコードの第2タイプを生成します。この場合、それはJavascriptコードなので、それはブラウザが理解するものです。ユーザはそれを見ることができ、それを修正することもでき、ユーザのコンピュータ上で実行される。

データベースはあなたのサーバー上に存在し、公にアクセスできないので(結局はそれほど悪くないでしょう)、サーバー側コードを使用してデータベースとやりとりする必要があります。ユーザーのブラウザで実行されるコードは、データベースと直接対話できないため、ここでは一種の「グルー」技術を使用する必要があります。

これを行う1つの方法は、AJAXリクエストです。これは、Javascriptコードがブラウザーにサーバーにメッセージを送信し、応答を待つように指示するときです。これは、例えば、ボタンをクリックすると起こる可能性があります。その後、サーバーはいつものようにリクエストを処理し、データベースとやりとりし、結果をブラウザに返すことができます。しかし、ユーザーには、ボタンをクリックするだけで期待通りの行動がとれることがすべてわかります。それだけで問題はありません。

RailsアプリケーションでAJAXを実装する方法はいくつかあります。 Railsには、Rails 2のbutton_to_remote、またはRails 3の:remoteオプション付きのbutton_toオプションのような、見た目の組み込みメソッドがいくつか用意されています。あるいは、あなた自身でAJAXコードを書くことができます。グーグルの「AJAXチュートリアル」でも良い出発点になります。しかし、Railsのヘルパーから始めるのは、初心者の方には簡単なことが多いからです。

幸運を祈る!

1

JS AJAXリクエストを使用してバックエンドERBファイルをリクエストし、データベースにアクセスすることができます。

Using AJAX with JS
Using AJAX in jQuery

関連する問題