2010-11-29 25 views
4

很多搜​​索和閱讀的我有一個collection_select看起來後像這樣軌2.1.2 collection_select有:平變化和:與

<%= collection_select :selection, :level, User::LEVELS, :to_s, :to_s,{:with => "this.value"}, 
     {:onchange => remote_function(
      :url => {:action => "updatelevel", :controller => "user", :id=> user.id}) 
     } %> 

但是它不是通過所選擇的價值到我的控制器,我唯一得到的是零。

我搞砸關於與地方差異的組合:與應,並試圖測試字符串,但它似乎永遠不會做任何事情。

我失去了一些愚蠢的事?是否有我應該看的「definetive」例子?

的Rails似乎改變如此之快,它很難知道一個論壇帖子在談論哪個版本有關,我讀collection_select API不表明什麼我可以把在選項哈希值。

回答

5

我檢查了這一點上運行的Rails 2.3.9我的應用程序。您的'with'參數位於錯誤的位置,它是遠程函數的選項,而不是選擇集合。另外,以這種方式傳遞值將會得到一個像{「134523456」=>「」}的params哈希,這可能不是你想要的。你必須讓你的'with'值產生一個以JavaScript爲中心的字符串。

<%= collection_select :selection, :level, User::LEVELS, :to_s, :to_s, {}, 
     {:onchange => remote_function(
     :url => {:action => "updatelevel", :controller => "user", :id=> user.id}, 
     :with => "'level_id='+this.value" 
    ) 
    } 
%>