2011-02-10 11 views
5

Ho una richiesta Ajax da una pagina nella mia applicazione Rails che assomiglia così:Come ottengo le variabili Rails dai dati jQuery Ajax restituiti?

$.ajax({ 
type: 'POST', 
url: '/users/create/', 
data: "screen_name=<%[email protected]_name%>", 
success: createSuccessHandler, 
error: createErrorHandler, 
complete: hideLoadingImage 
}); 

e attualmente l'azione risponde con questo:

respond_to do |format| 
    format.js { render :text => @user} 
    format.html { redirect_to @user } 
end 

Il creano l'azione funziona bene, ma come Ottengo i valori restituiti (dati) nel mio metodo di successo in modo che possa fare qualcosa di simile?

function createSuccessHandler(data) { 

    $("#div1").append(data.value1); 
    $("#div2").append(data.value2); 

} 

Fondamentalmente sto cercando di dividere i dati fino in variabili diverse.

+0

hai provato a lavorare con render: text => @ user.to_json? – apneadiving

risposta

4

Restituire json nel controller (ad es. Aggiungere una stanza format.json e richiedere quella invece di .js). Poi nella funzione createSuccessHandler farai qualcosa di simile:

var foo = eval(data); 
$("#div1").append(foo.value1); 
$("#div2").append(foo.value2); 

Si noti che alcune librerie javascript (come jQuery) forniscono modi più sicuri per gestire JSON rispetto all'utilizzo eval, sentitevi liberi di utilizzare quelli invece.

+0

Json lo è. Grazie! – Lee

Problemi correlati