Rails 3 アプリで Ujs を使用したいと考えています。Railsの控えめで目立たないjavascriptについて説明してくれる人はいますか? Rails 3 以前のバージョンが ujs をサポートしていないのはなぜですか?
1 に答える
Railsには初期のバージョンからjavascriptヘルパーがあります。
Rails 3との違いは、目立たないようになったことです。目立たないということは、機能がコンテンツから分離されていることを意味します。
たとえば、次のとおりです。
<%= link_to "Delete", resource_path(@resource), :method => "delete", :confirm => "Are you sure?" %>
Rails3以前をレンダリングします
<a href="/resource/1" onclick="//lots and lots of inline javascript code here">Delete</a>
Rails3UJSを使用
<a href="/resource/1" data-method="delete" data-confirm="Are you sure?">Delete</a>
違いは、控えめなJavaScriptがビューにインラインコードなしで処理され、「データ」属性を介して渡され、このデータ属性を取得して対応するJSコードを実行するアプリ内の他のデフォルトJSでバックグラウンドで処理されることです。 。
:remote => "true"
UJSは、またはを使用してリモート(AJAX)呼び出しを行うためにも一般的に使用されますlink_to_remote
。
詳細については、こちらをご覧ください:AJAX on Rails
基本的に、UJSは、確認などのRailsに含まれるjavascriptヘルパー、およびAJAXなどがビューコード(HTML)から分離されていることを意味します。
UJSヘルパーも簡単に切り替えることができます。たとえば、Prototypeを使用する場合は、ヘルパーの機能を維持しながらjQueryから簡単に切り替えることができます。
Railsの古いバージョンがUJSをサポートしていなかったのは、その時点で組み込まれていなかったため、インラインJSを使用して行われたためです。