あなたはもう少し控えめなものに近づいしようとする場合があります。
<%= link_to "Search", "#", :id => "search_geocode", :"data-href" => my_controller_geocode_path %>
これは、それがユニークなID、およびまたdata-href
属性のコントローラ/ジオコードパスが含まれていることを除いて、あなたがすでに持っているものと実質的に同じである:私のようなもので、あなたのlink_to
コールを交換することをお勧めします。これは、あなたのルビーとjavascriptを少し離れた状態に保つのに役立ちます。あなたのapplication.js
(またはどこか似た)で次に
:
$('#search_geocode').live('click', function(event){
event.preventDefault();
$.post($(this).attr('data-href') + "?address=" + $('#address').val(), function(data){});
});
URLまたはパスへのアドレスがdata-href
で提供記事検索ボタンにclick
イベントリスナーをバインドされてこれが効果的にやっていますあなたの検索リンクの属性。
あなたのコードでは、ルビーのソースアドレスのid
を設定しています。この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){});
});