2012-04-17 7 views
6

Ho una chiamata jQuery AJAX che carica una finestra. Nella finestra, c'è un modulo con un invio per consentire agli utenti di scaricare un elemento. Devo fare in modo che questo secondo modulo usi un invio regolare in modo che possa richiedere un download.
Il mio problema è quando non ci sono file da scaricare, reindirizza alla pagina in cui si trova questo file.
Sto provando molti stili diversi per ottenere il rendering di nulla, ma nessuno di essi sembra funzionare.
Come rendere: render => niente funziona

unless params[:controller] == "reports" 
    unless @jobs.present? 
    flash.now[:error] = "No work orders for this selection." 
    render :nothing => true 
end 
end 

anche

respond_to do |format| 
    format.html { render :nothing => true } 
end 

nulla sembra funzionare. Qualche idea?

+0

'rispondi a do | formato | format.html {rendering: nothing => true} end' funziona per me. – zsquare

+0

fa 'return render: nothing => true' fa la differenza? – Jonathan

+0

sei sicuro che '@ jobs' è vuoto? il rendering dovrebbe funzionare, quindi potrebbe essere la condizione che salta il rendering: nothing => true' – Vikko

risposta

18

Non utilizzare render: nothing. Questa operazione "non riuscirà" la richiesta Ajax. Utilizzare invece:

render json: nil, status: :ok