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 

我必須在新方法中傳遞id。在這裏,如果數據保存正確,那麼它將轉到索引方法。但如果沒有,那麼它應該去新的,但與參數ID。我如何通過渲染動作來傳遞參數?在這裏我想要做但param id不傳遞給新的方法。我突出強調了這一錯誤。 如果我做如何在渲染動作中傳遞參數

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

然後,它不給錯誤的消息...

我有用戶ID傳遞給新的方法,這樣我可以通過表單傳遞和保存。

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


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

      </div> 

但當形式得到錯誤使它對新的,但在這裏,我要送 ID這是在@emppede.ad。 我該怎麼做? 因爲爲了在新的方法進入應該有ID通過

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

你真的必須將'id'傳遞給'new'視圖嗎?你已經有了你的'@ emppede'設置,在你的視圖中使用它。 – jdoe

+0

這是我必須發送的另一個ID,這是我的形式。我必須從這裏發送ID,因爲我的新方法就像 – regmiprem

回答

7

你在你的控制器動作定義的所有實例變量都在視圖中。 因此,如果您在控制器中定義了@id = 11,則可以使用<%= @id %>在視圖中對其進行訪問。

如果你想這樣做了重定向你可以簡單地可以訪問視圖內parameters(或控制器先使用它們,然後使用上面的實例方法。

您發佈的代碼是一個有點神祕,但渲染將不會進入new方法,但只在當前上下文中渲染new.html.erb。因此,如果您在創建動作中聲明瞭@id並呈現新動作,您將使其呈現出來

重定向到:action you'必須通過@id作爲參數。

+0

我必須將用戶ID傳遞給新方法,以便我可以將它傳遞給窗體並保存。 \t

但是,當表單得到錯誤,它呈現給新的,但在這裏我必須發送在@ emppede.ad中的ID。我怎樣才能做到這一點? – regmiprem

+0

你可以編輯我的問題,以便我可以得到結果。我很亂。 – regmiprem

+1

謝謝我得到它只是我必須定義@ id = @ emppede.ad裏面創建方法,那麼它是好的.... - – regmiprem

7

Render會查找「new.html」,它不會進入新的方法。

相關問題