6
def create 
    @emppede = Emppede.new(params[:emppede]) 

    respond_to do |format| 
     if @emppede.save 
     format.html { redirect_to :action => :index, :id => @emppede.ad } 
     format.json { render json: @emppede, status: :created, location: @emppede } 
     else 

     format.html { render action: "new", :id => @emppede.ad } *(....error)* 
     format.json { render json: @emppede.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

Devo passare id nel nuovo metodo. Qui se i dati vengono salvati correttamente, allora va al metodo dell'indice. Ma se no allora dovrebbe andare a nuovo ma con l'id dei param. Come posso passare i param attraverso l'azione di rendering? Qui voglio fare ma param id non è passato al nuovo metodo. Ho evidenziato quella parte per errore. Se facciocome passare il parametro nell'azione di rendering nei binari

format.html { redirect_to :action => :new, :id => @emppede.ad } 

Allora non danno errori messaggio ...

devo passare id utente per il nuovo metodo in modo che possa passare attraverso la forma e risparmiare.

<div id="employm" style="display:none"> 


    <%= f.text_field :ad, :value=> @id%> 

      </div> 

Ma quando il modulo riceve l'errore è rendere a nuovo, ma qui devo inviare l'id che è in @emppede.ad. Come posso fare questo? Dal momento che per entrare nel nuovo metodo ci dovrebbe essere id passato

redirect_to :action => :new, :id => @id 
+0

Davvero devi passare 'id' alla vista' new'? Hai già il tuo insieme '@ emppede', usalo nella tua vista. – jdoe

+0

questo è un altro id che devo inviare che è nella mia forma. Devo inviare l'id da qui poiché il mio nuovo metodo è come – regmiprem

risposta

7

Tutte le variabili di istanza si definiscono nella vostra azione di controllo sono presenti nella visualizzazione. Quindi se si definisce @id = 11 nel controller è possibile accedervi nella vista utilizzando <%= @id %>.

Se si vuole fare questo nel corso di un reindirizzamento si può semplicemente possibile accedere al parameters all'interno della vista (o utilizzarli prima nel controller e quindi utilizzare il metodo di istanza di cui sopra.

Il codice inserito è un po 'criptico ma il rendering non entrerà nel metodo new ma renderà il new.html.erb solo nel contesto corrente.Se hai dichiarato @id nella tua azione di creazione e il rendering nuovo lo avrai presente

Quando reindirizzare a: azione tu Dovrò passare l'@id come parametro

+0

Devo passare l'id utente al nuovo metodo in modo che possa passarlo attraverso il modulo e salvare. \t

Ma quando il modulo ottiene l'errore, lo rende nuovo ma qui devo inviare l'id che si trova in @ emppede.ad. Come posso fare questo? – regmiprem

+0

Puoi modificare la mia domanda in modo da ottenere il risultato. Sono incasinato. – regmiprem

+1

Grazie, ho capito che devo definire @ id = @ emppede.ad all'interno del metodo di creazione, allora è ok .... – regmiprem

7

Render cercherà "new.html", non entrerà nel nuovo metodo.