2011-10-21 92 views
0

我可以看到裏面的參數中的ID在日誌中,但我不能訪問它在controller.Can任何機構,請告訴我怎麼回事,我可以做什麼?顯然 @city=City.find(params[:cities][:city_id])沒有做job.Thank你我如何從一個collection_select表單中獲取一個id?

<%= form_for :city, :url=>{:action =>"next"} do |f| %> 
    <%= f.collection_select(:city_id, City.all, :id, :name ,:prompt=>"Select your city") %> 

    <%=f.submit "continue" %> 
    <%end%> 

首頁控制器

 def next 
     @city=City.find(params[:city_id]) 
     session[:city_id] = @city.id 
     redirect_to :controller=>"parks",:action =>"show" 
     end 

在日誌

 Started POST "/home/next" for 127.0.0.1 at 2011-10-21 12:16:37 -0700 
    Processing by ParkController#show as HTML 
    Parameters: {"utf8"=>"✓", "authenticity_token"=>"7VVJ9GHcU4miYLCkSt91S674GGTScor86Tcsz7O25ik=", "city_id"=>"2", "commit"=>"continue"} 
    Rendered park/show.html.erb within layouts/header (2.5ms) 
    Completed 500 Internal Server Error in 7ms 

回答

1

噢該死的我是一個白癡沒有看到它在一開始。你寫

@city=City.find(params[:cities]) 

但應

@city=City.find(params[:city_id]) 
+0

我只是改變像上面顯示,但仍然沒有工作 – katie

+0

好吧,那麼請發佈一個新版本的params了。 – davidb

+0

你完全確定你的數據庫中有一個id = 2的城市嗎? –

1

你寫

<%= collection_select(nil,:city_id, City.all, :id, :name ,:prompt=>"Select your city") %> 

但是,你應該寫

<%= f.collection_select(:city_id, City.all, :id, :name ,:prompt=>"Select your city") %> 

像你這樣的提交按鈕!其實你也可以加入這一行的表格目標:

<%= params.inspect %> 

,看看哪些值在散列被轉移。

+0

謝謝你指出that.i只是改變了像你這樣的建議,但仍然我不能訪問它,見上面 – katie

+0

好的代碼,然後重新嘗試發送數據併發布params散列。 – davidb

1

嗯,也許我錯了(不是一個經驗豐富的Rails開發),但你不具備只寫

params[:city_id] 

相關問題