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 

Muszę przekazać identyfikator w nowej metodzie. Tutaj, jeśli dane są zapisywane poprawnie, przechodzi do metody indeksowania. Ale jeśli nie, powinien przejść do nowego, ale z identyfikatorem params. W jaki sposób mogę przekazać parametry przez akcję renderowania? Tutaj chcę zrobić, ale identyfikator param nie jest przekazywany do nowej metody. Podkreśliłem tę część przez błąd. jeśli zrobięjak przekazać parametr w renderowaniu akcji w szynach

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

Wtedy nie dają błędom wiadomość ...

mam przekazać identyfikator użytkownika do nowej metody, aby można było przekazać go za pomocą formularza i oszczędzać.

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


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

      </div> 

Ale gdy postać się błąd to uczynić na nowe, ale tutaj muszę wysłać identyfikator, który jest w @emppede.ad. Jak mogę to zrobić? Ponieważ w celu zapisania w nowej metody powinny być id przekazywane

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

Czy naprawdę trzeba przekazać "id" do widoku "nowego"? Masz już zestaw '@ Emppede', użyj go w swoim widoku. – jdoe

+0

to jest kolejny identyfikator, który muszę wysłać, że jest w mojej formie. Muszę wysłać id stąd, ponieważ moja nowa metoda jest jak – regmiprem

Odpowiedz

7

Wszystkie zmienne instancji definiowane w akcji kontrolera są obecne w widoku. Jeśli więc zdefiniujesz @id = 11 w swoim kontrolerze, możesz uzyskać do niego dostęp w widoku, używając <%= @id %>.

Jeśli chcesz to zrobić na przekierowanie można po prostu można uzyskać dostępu do parameters wewnątrz widoku (lub użyć ich w pierwszej kolejności w sterowniku, a następnie użyć metody instancji wyżej.

Kod pisał jest nieco tajemniczy , ale render nie wchodzi w skład metody new, ale renderuje tylko new.html.erb w bieżącym kontekście.Tak więc jeśli zadeklarowałeś @id w akcji tworzenia i wyrenderowałeś nowe, to będziesz je miał pod ręką

Kiedy przekierowujesz na: action you ' Będę musiał podać parametr @id jako parametr:

+0

Muszę przekazać identyfikator użytkownika do nowej metody, tak, że mogę przekazać go przez formularz i zapisać. \t

Ale gdy formularz otrzyma błąd, renderuje się go na nowo, ale tutaj muszę wysłać identyfikator, który jest w @ emppede.ad. Jak mogę to zrobić? – regmiprem

+0

Możesz edytować moje pytanie, aby uzyskać wynik. Jestem zawalony. – regmiprem

+1

Dzięki, mam to po prostu muszę zdefiniować @ id = @ emppede.ad wewnątrz metody tworzenia, to jest ok .... – regmiprem

7

Render będzie szukał "new.html", nie wejdzie w nową metodę.

Powiązane problemy