我有以前它通過相同的參數表格形式:Rails - params中的反斜槓導致嚴重破壞?
<%= form_tag({:controller => "workouts", :action => "random"}) do %>
<%= hidden_field_tag :workout, params[:workout] %>
<%= hidden_field_tag :time, params[:time] %>
<%= submit_tag "Get Another", :class => 'btn' %>
第一種形式工作正常,第二種形式爲「得到另一個」給我的錯誤can't convert Symbol into Integer
這一行:
@equipment_ids = params[:workout][:equipment_ids].collect{|s| s.to_i}
被傳遞的第一和第二形式的PARAMS是:
{"utf8"=>"✓",
"authenticity_token"=>"qj/Q/YWvLKK3A3paAnEom4oTFtq44daX6dvEb8qmgtE=",
"workout"=>{"equipment_ids"=>["",
"508",
"518"]},
"time"=>"25",
"commit"=>"Get Workout"}
{"utf8"=>"✓",
"authenticity_token"=>"qj/Q/YWvLKK3A3paAnEom4oTFtq44daX6dvEb8qmgtE=",
"workout"=>"{\"equipment_ids\"=>[\"\",
\"508\",
\"518\"]}",
"time"=>"25",
"commit"=>"Get Another"}
唯一的區別是逸出反斜槓。我不確定爲什麼這些會導致問題?
這裏的問題是因爲您試圖將字段作爲字符串傳遞,而不是哈希。你看到的反斜槓沒有問題,但是沒有理解params [:workout]傳遞到一個字段然後通過表單提交的情況不會奇蹟般地變成哈希。你能解釋一下爲什麼你試圖這樣做,而不是僅僅堅持數據庫中的鍛鍊? – 2012-07-09 00:18:19
是啊你說得對,我現在正在處理它 – Nick5a1 2012-07-09 00:26:46