Sie möchten vielleicht versuchen, die Dinge ein wenig mehr unauffällig nähern. Ich würde empfehlen, Ihren link_to
Anruf mit etwas zu ersetzen, wie:
<%= link_to "Search", "#", :id => "search_geocode", :"data-href" => my_controller_geocode_path %>
Dies ist praktisch identisch zu dem, was Sie bereits haben, mit der Ausnahme, dass es eine eindeutige ID enthält, und auch die Steuerung/geocode Pfad in einem data-href
Attribute. Dies wird Ihnen helfen, Ihren Rubin und Javascript ein bisschen mehr getrennt zu halten.
Dann in Ihrem application.js
(oder irgendwo ähnlich):
$('#search_geocode').live('click', function(event){
event.preventDefault();
$.post($(this).attr('data-href') + "?address=" + $('#address').val(), function(data){});
});
Was dies effektiv macht, ist die Bindung eines click
Ereignis-Listener auf Ihre Suchtaste, die Beiträge der Adresse auf die URL oder den Pfad in der data-href
vorgesehen Attribut Ihres Suchlinks.
Ich stelle auch fest, dass Sie in Ihrem Code die id
der Quelladresse in Ruby festlegen. Wenn dieses Attribut id
basierend auf einer Art von Seitenvorlagenbedingungen geändert werden muss, können Sie das Beispiel erweitern, indem Sie einen weiteren data-
-Parameter zu Ihrem Link hinzufügen. Zum Beispiel:
<%= link_to "Search", "#", :id => "search_geocode", :"data-href" => my_controller_geocode_path, :"data-address-id" => address_helper_id %>
Und wieder in application.js
oben mit etwas entlang der Linien zu ersetzen:
$('#search_geocode').live('click', function(event){
event.preventDefault();
$.post($(this).attr('data-href') + "?address=" + $($(this).attr('data-address-id')).val(), function(data){});
});