もう少し目立たないように物事に取り組みたいと思うかもしれません。link_to
呼び出しを次のようなものに置き換えることをお勧めします。
<%= link_to "Search", "#", :id => "search_geocode", :"data-href" => my_controller_geocode_path %>
これは、一意の ID と、data-href
属性にコントローラー/ジオコード パスが含まれていることを除いて、既にあるものと実質的に同じです。これにより、Ruby と JavaScript をもう少し分離しておくことができます。
次に、あなたのapplication.js
(または同様の場所で):
$('#search_geocode').live('click', function(event){
event.preventDefault();
$.post($(this).attr('data-href') + "?address=" + $('#address').val(), function(data){} );
});
これが効果的に行っているのは、イベント リスナーを検索ボタンにバインドすることです。これにより、検索リンクclick
の属性で指定された URL またはパスにアドレスが送信されます。data-href
また、あなたのコードでid
は、ソース アドレスの を ruby で設定していることにも気付きました。id
何らかのページ テンプレート条件に基づいてこの属性を変更する必要がある場合はdata-
、リンクに別のパラメーターを追加して、私の例を拡張できます。例えば:
<%= link_to "Search", "#", :id => "search_geocode", :"data-href" => my_controller_geocode_path, :"data-address-id" => address_helper_id %>
繰り返しますが、application.js
上記を次の行に沿ったものに置き換えます。
$('#search_geocode').live('click', function(event){
event.preventDefault();
$.post($(this).attr('data-href') + "?address=" + $($(this).attr('data-address-id')).val(), function(data){} );
});