2012-06-13 7 views

risposta

13

Ci sono molti modi per rispondere a questo a seconda delle vostre specifiche (ad esempio: state usando jquery e l'adattatore UJS) ma ho intenzione di pubblicare materiale da un documento che sto usando per capire meglio l'intero processo: Io uso questo grande post in gran parte: aggiornerò la mia risposta mentre sto lavorando anch'io a questa roba.

È possibile aggiungere l'attributo di dati di tipo all'elemento DOM in questo modo:

<%= link_to "Add a new task", new_project_task_path(@project), "data-type" => "json", :id => "add_task_btn" %> 

È possibile anche definire un tipo di dati predefinito in funzione globale di jQuery $ .ajaxSetup(). Modifiche tutte le richieste Ajax:

$.ajaxSetup({ 
   dataType: 'json' 
}); 

E il terzo modo è nella richiamata beforeSend:

$(“#add_some_button”).live(“ajax:beforeSend”, function(e, xhr, settings){ 
     new_data_type = “application/json, text/javascript, */*; q=0.01”; 
     xhr.setRequestHeader('accept', new_data_type); 
}) 

(la q = 0,01 è la preferenza tra 0 e 1)

modo da poter cambiare quella proprietà dataType e le intestazioni HTTP per soddisfare le tue esigenze. Per avere un riferimento, ecco un elenco dei possibili tipi MIME: Here

E l'elenco specifico tipo di javascript supporto: Here

Panoramica formato dati vengono inviati dal server: 1. ) Ajax invia la richiesta con l'intestazione Accept impostata sul tipo MIME desiderato. 2.) Controller Rails controlla l'intestazione Accept per determinare cosa deve restituire. 3.) Il controller determinerà se l'azione gestisce il particolare tipo MIME. In rails 3 possiamo usare respond_with, pre 3.0 è un reply_to block nell'azione controller.

Panoramica dei modi Ajax può essere utilizzato in Rails 3.1:

credo che il metodo preferito ora è quello di utilizzare il tipo di dati predefinito come script e quindi gestire le richieste di AJAX sia con un js.erb o js. file di caffè.

Opzioni: 1. ) evento Click: Inserimento DOM Elementi 2.) Invio di un modulo tramite Ajax 3.) Eliminazione tramite Ajax 4.) convalida lato client con l'Ajax (Utilizzando i dati-remoto su un ingresso campo) 5.) Aggiunta di selezione dinamica (Utilizzo di dati remoti su un campo di selezione) 6.) Impaginazione Ajax - Restituisce HTML direttamente.

Ancora una volta quello che sto includendo qui è il mio schema/recensione, per ottenere dettagli si prega di controllare il grande post di Andrea Singh here.

-4

Si prega di provare questo:

app/controllers/examples.rb

class ExamplesController < ApplicationController 
    def new 
     @my_json = { :message => "Hello json"} 
    end 
end 

app/views/examples/new.html.Haml

= link_to "New", new_examples_path :remote => true 

app/views/examples/new.js.erb

console.log("<%= @my_json %>"); 
console.log("<%= @my_json['message'] %>"); 
Problemi correlati