0
我承認對此有點難以理解,因爲我一直在做rails的一段時間。 我試圖從多選組合框中獲取params[]
中的值數組。Rails 2.3.8多重選擇不返回數組,即使使用<select name ='foo []'multiple ='multiple'>
這是軌道2.3.5和紅寶石1.8.6(我知道,我知道)。
生成的HTML是:
<select id="shows_" multiple="multiple" name="shows[]">
<option value="5">A Grand Night For Singing (Jan - Feb 2007)</option>
<option value="6">Who's Afraid of Virginia Woolf? (Mar - Apr 2007)</option>
...more options...
</select>
注意選擇標籤的名字在「[]」結束,「多」選項。 如果我在控制器動作的頂部設置調試斷點,看看params[:shows]
:
(rdb:62) p params[:shows]
["17,18,19"]
捕獲的值是正確的,但我曾預計["17","18","19"]
,即一個由N個元素組成的數組,而不是由N個逗號分隔值組成的單個元素的數組。
我可以很容易地編碼,但我很困惑,因爲我非常確定這曾經工作,我期望的行爲是記錄的行爲。有任何想法嗎?
我看着http://apidock.com/rails/ActionView/Helpers/FormTagHelper/select_tag#691-sending-an-array-of-multiple-options,並認爲你的輸出看起來不錯。我甚至在一個Rails 2.3.11項目上嘗試過它,並且它按照你的期望工作。如果你只是在apidock上展示的方式做一些事情,它在2.3.8中工作嗎? – 2012-01-08 18:36:46
更正,我在2.3.5不是2.3.8。實際上,我已將跟蹤堆棧跟蹤到ActionController :: Dispatcher.call(),並且params ['show']即使在調用時也具有上述值。 – 2012-01-08 19:20:59