Mam to, co moim zdaniem jest bardzo prostym problemem. Pochodzę z tła PhP i używałem tego cały czas, więc może patrzę na to w niewłaściwy sposób.Ruby on Rails: Akcja bez widoku
Próbuję utworzyć obsługę ajax w RoR. Gdy użytkownik kliknie przycisk, javascript odpala POST i przekazuje informację zwrotną użytkownika za pomocą parametru "success:" funkcji ajax jQuery.
Problem polega na tym, że RoR próbuje wczytać widok do obsługi ajaxera, kiedy naprawdę potrzebuję kilku linii w kontrolerze do wykonania pracy z bazą danych i wywołać echo kodu statusu, który zostanie zinterpretowany przez użytkownika. javascript.
To wszystko jest tylko stroną do przechowywania subskrypcji mailchimp, więc używam tylko kontrolera "macierzystego".
Moje trasy;
map.root :controller => 'home'
map.connect '/mcsubscribe', :controller => 'home', :action => 'mcsubscribe'
Mój kontroler domowy;
class HomeController < ApplicationController
def index
# no content
end
def mcsubscribe
print params[:email]
end
end
I moje testowanie javascript, tylko po to, aby zrozumieć, co się dzieje;
function mcSubscribe() {
var email = jQuery("#signup_input_email").val();
jQuery.ajax({
type: "POST",
url: "http://domain.com/mcsubscribe",
data: "email=" + email,
cache: false,
success: function(result) {
alert(result);
}
});
}
Myślałem, że będzie to wspólny problem, ale ja googled wokół i tylko udało się znaleźć propozycje przekierować, gdy użytkownik nie będzie odwiedzić stronę/mcsubscribe, że nie wydaje się właściwe.
Rendering nic nie jest dokładnie to, co PO chce osiągnąć. Chce wydrukować tylko wartość 'params [: email]'. – Koraktor
Z linku, ** render: text => params [: email] ** działa doskonale dzięki! Wiedziałem, że to musi być proste. – lynks