2013-05-19 58 views
0

我正在使用Rails構建一個應用程序,如下所示。我想創建一個帶多個停靠點的加載。我有一個類加載「has_many:停止」。一旦創建了加載結構,我保存加載並使用戶進入新的停止視圖。我如何獲取在最後一次點擊中創建的負載ID並將其傳遞到站點?這是我在新的一站中所擁有的。如何將保存在一個視圖中的對象ID傳遞給另一個視圖?

<%= label_tag :load_id %><br /> 
<%= number_field_tag :load_id %> 
+1

可能在看這個railscasts插曲會給你如何解決你的問題的想法:http://railscasts.com/episodes/217-multistep-forms – brg

+0

你有任何控制器代碼? – PinnyM

+0

概括起來,這是我正在嘗試做的事情。我創建模型A並提交按鈕將我重定向到模型B.我想要保存的模型A數據在模型B中可用。 – user2297820

回答

1

創建一個嵌套的資源,所以load_id將在URL:/loads/:load_id/stops/new

載荷模型:

class Load < ActiveRecord::Base 
    has_many :stops 
end 

路線:

resources :loads do 
    resources :stops 
end 

控制器停止:

class StopsController < ApplicationController 
    # get /loads/:load_id/stops/new 
    def new 
    load = Load.find(params[:load_id]) 
    @stop = load.stops.build 
    end 
    # post /loads/:load_id/stops 
    def create 
    load = Load.find(params[:load_id]) 
    @stop = load.stops.create(params[:stop]) 
    if @stop.save 
     format.html { redirect_to([@stop.post, @stop], :notice => 'Stop was successfully created.') } 
    else 
     format.html { render :action => "new" } 
    end 
    end 
end 

從這裏提取:

http://blog.8thcolor.com/2011/08/nested-resources-with-independent-views-in-ruby-on-rails/

+0

DEF創建 - - 如果@ load.save P = Load.find(PARAMS [ 「ID」]) redirect_to的 '/負載/ P /停止/新' 別的 渲染 '新' 端 端 – user2297820

+0

是在我的負載控制器上面的正確嗎? – user2297820

+0

是的,但代碼不好。 _def創建; @load = Load.new(params [:load]);如果@ load.save; redirect_to new_load_post(@load);其他;渲染'新'; end_ – michelpm

相關問題