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 

Yeni bir yöntemde kimliği geçmek zorundayım. Burada veriler düzgün bir şekilde kaydediliyorsa indeks metoduna gider. Ama değilse o zaman yeni ama params id ile gitmeli. Paramları render eylemiyle nasıl geçebilirim? Burada yapmak istiyorum ama param kimliği yeni yönteme geçmiyor. Bu kısmı hatayla vurguladım. iRaylarda görüntü oluşturma işleminde parametre geçişi nasıl yapılır

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

yaparsanız i formu ile geçmek ve kaydedin, böylece Sonra ... hataları yeni yönteme kullanıcı kimliği geçmek zorunda

mesajı vermeyin.

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


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

      </div> 

Ama formu alınca yeni render ama burada ben @emppede.ad içindedir id göndermek zorunda hata. Bunu nasıl yapabilirim? id olmalıdır yeni yöntemde girmek için yana

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

Gerçekten "id" i "yeni" görünüme geçmek zorunda mısın? Zaten @ emppede'niz setiniz var, kendi görünümünüzde kullanın. – jdoe

+0

bu, formumda bulunan başka bir kimliktir. Yeni metodum – regmiprem

cevap

7

Eğer kontrolör eylem tanımlamak Tüm örnek değişkenleri görünümünde mevcut geçti. Eğer denetleyicinizde @id = 11'u tanımlarsanız, <%= @id %> kullanarak bu görüntüye erişebilirsiniz.

Eğer bir yönlendirmeye bunu yapmak istiyorsanız sadece iç görünüm parameters erişebilir (veya denetleyicisi ilk bunları kullanmak ve daha sonra yukarıdaki örnek yöntemini kullanabilirsiniz.

Yayınladığınız kod biraz şifreli , ancak render new yöntemini girmeyecek, ancak geçerli bağlamda yalnızca new.html.erb'u oluşturmayacaktır.Yani oluşturma eyleminizdeki @id bildirdiyseniz ve bunu yeni oluşturursanız, bunu elde edersiniz

Şuna yönlendiriyorsanız: @id değerini bir parametre olarak geçirmeliyiz:

+0

gibi olduğundan buradaki kimliği göndermem gerekiyor. Kullanıcı kimliğini yeni yönteme aktarmam gerekiyor, böylece formdan geçirip kaydedebiliyorum. \t

Ancak formda hata oluştuğunda yeni hale getirilir ancak burada @ emppede.ad dosyasındaki kimliği göndermeliyim. Bunu nasıl yapabilirim? – regmiprem

+0

Sorunu düzenleyebilmem için sonuç alabilirim. Ben berbat ettim. – regmiprem

+1

Teşekkürler sadece basitçe @ id = @ emppede.ad tanım yöntemini oluşturmak zorundayım. – regmiprem

7

Render "new.html" yi arar, yeni yönteme girmez.