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 

Ich muss ID in neue Methode übergeben. Hier, wenn die Daten richtig gespeichert werden, geht es zur Indexmethode. Aber wenn nicht, dann sollte es neu gehen, aber mit der IDs. Wie könnte ich die Params durch render Aktion übergeben? Hier möchte ich tun, aber Param ID wird nicht an neue Methode übergeben. Ich habe diesen Teil irrtümlich markiert. Wenn ichWie Parameter in Render-Aktion in Schienen übergeben

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

es dann nicht geben, Fehler Nachricht ...

Ich habe Benutzer-ID an die neue Methode zu übergeben, so dass ich es durch das Formular übergeben und speichern können.

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


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

      </div> 

Aber wenn das Formular es um neue Render erhalten Fehler aber hier habe ich die ID zu senden, die in @emppede.ad ist. Wie kann ich das tun? Da, um in neue Methode eingeben dort id übergeben in der Ansicht sein, sollten Sie

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

Müssen Sie wirklich die ID an die neue Ansicht übergeben? Sie haben bereits Ihr '@ emppede' Set, verwenden Sie es aus Ihrer Sicht. – jdoe

+0

Dies ist eine andere ID, die ich senden muss, die in meiner Form ist. Ich muss ID von hier senden, da meine neue Methode wie – regmiprem

Antwort

7

Alle Instanzvariablen vorhanden sind, in Ihrem Controller-Aktion definieren. Wenn Sie also @id = 11 in Ihrem Controller definieren, können Sie in der Ansicht darauf zugreifen, indem Sie <%= @id %> verwenden.

Wenn Sie dies über eine Umleitung tun möchten, können Sie einfach die parameters innerhalb der Ansicht zugreifen können (oder sie zuerst in der Steuerung verwenden und dann die Instanz-Methode oben verwenden.

ist Ihr geschrieben Code ein bisschen kryptisch , sondern machen die new Methode nicht geben, sondern nur die new.html.erb im aktuellen Kontext machen Also, wenn Sie in Ihrer Aktion erstellen erklärt @id und machen neue Sie haben es vorhanden

Wann Umleitung:.. Aktion‘ ll muss die @id als Parameter übergeben

+0

ist Ich muss Benutzer-ID an die neue Methode übergeben, damit ich es über das Formular übergeben und speichern kann. \t

Aber wenn das Formular Fehler wird es zu neu rendern, aber hier muss ich die ID senden, die in @ emppede.ad ist. Wie kann ich das machen? – regmiprem

+0

Können Sie meine Frage bearbeiten, so dass ich Ergebnisse erhalten kann. Ich bin durcheinander. – regmiprem

+1

Danke ich habe es einfach ich muss @ id = @ emppede.ad innerhalb Methode erstellen dann ist es in Ordnung .... – regmiprem

7

Render wird nach "new.html" suchen, es wird nicht in die neue Methode eingehen.