2011-04-01 48 views
0

如果我有一種情況,參數不是通過URL顯式傳遞的,因爲在一個頁面上有一些ajax元素,如何訪問早期加載的對象的ID ......例如。如果不通過Rails 3中的URL參數,我如何訪問已通過AJAX加載的資源的ID?

  1. 用戶選擇client.id = 1個
  2. 用戶選擇,project.id = 3
  3. 用戶選擇,stages.id = 9

但是,沒有這些ID都是通過傳遞URL。

在那個例子中,當用戶到達第3步時,我想訪問客戶端控制器中的client.id ....我該怎麼做?

如果它在URL中,我只會做client = Client.find(params[:id]),但是如果我現在這樣做,那麼在步驟3中,作爲ID參數返回的是Stage ID - 這不是我想要的。

這是他們在各自的控制器的動作看起來像:

Client Step Action 

def step 
    client = Client.find(params[:id]) 
    projects = client.projects 
    respond_to do |format| 
     #format.html { redirect_to("/") } 
     format.html { render :partial => "projects/show", :collection => projects, :as => :project, :layout => false, :status => :ok } 
    end 
    end 

Project Step Action 

def step 
    project = Project.find(params[:id]) 
    stages = project.stages 
    respond_to do |format| 
     format.html { render :partial => "stages/show", :collection => stages, :as => :stage, :layout => false, :status => :ok } 
    end 
    end 


Stage Step Action 


def step 
    stage = Stage.find(params[:id]) 
    uploads = stage.uploads 
    respond_to do |format| 
     format.html { render :partial => "uploads/show", :collection => uploads, :as => :upload, :layout => false, :status => :ok } 
    end 
    end 
+0

你看過[this railscast](http://railscasts.com/episodes/217-multistep-forms)嗎? – ThoKra 2011-04-01 12:07:54

+0

這並不能幫助我。我已經有了表格設置和所有好東西。我只需要能夠在步驟1和其他步驟中訪問該ID。 – marcamillion 2011-04-01 20:59:14

回答

2

會跟蹤變量在會話對象的工作?例如,在第1步中,您可以執行類似session["client_id] = @client.id的操作。