Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 已升级的RoR应用程序(2到3.2)处理表单输入的方式很奇怪_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 已升级的RoR应用程序(2到3.2)处理表单输入的方式很奇怪

Ruby on rails 已升级的RoR应用程序(2到3.2)处理表单输入的方式很奇怪,ruby-on-rails,ruby,Ruby On Rails,Ruby,如果我有一个RoR应用程序,我从2升级到3.2,所有的东西最终都得到了修复,但我有一些奇怪的行为,从一个form_标签 表格编号为: <%= form_tag '/public/checkem' do %> <%= hidden_field "vals", value = picks.draw %> <%= hidden_field "val_index", value = xcount %> <%= submit_tag picks.

如果我有一个RoR应用程序,我从2升级到3.2,所有的东西最终都得到了修复,但我有一些奇怪的行为,从一个form_标签

表格编号为:

<%= form_tag '/public/checkem' do %>
   <%= hidden_field "vals", value = picks.draw %>
   <%= hidden_field "val_index", value = xcount %>
   <%= submit_tag picks.draw_date %>
<% end %>

在版本2中,这一切都很好,但我看不出数组作为散列传递的位置或原因。

显然,在使用模型和“form\u for”时,会指示使用“hidden\u field”。如果没有模型,则应使用“隐藏字段标记”

显然,在使用模型和“表单”时,会指示使用“隐藏字段”。如果没有模型,您应该使用“隐藏字段标记”

不确定您想做什么,但这可能会有所帮助
-在输入字段名称的末尾使用
[]
,这将导致rails自动将其转换为存储在
params[:vals]
中的数组,这样做只会引发一个错误:
ActionView::Template::error(object[]命名,但object param和@object var不存在或不响应_param:nil):
,我终于解决了这个问题,但有点麻烦。基本上,我将接受参数的行从
@xpicks=params[:vals].to_.split(“,”
替换为
@xpicks=params[:vals].to_.split(“”)[1].split(“,”)
,这很有效,但我应该能够正确地传递数组,不是吗?我已经意识到“picks.draw”变量甚至不是数组,它只是一个包含逗号分隔数字的字符串,如“1,2,3,4,5”,这使得隐藏的_字段对其执行这种转换更为奇怪。OK。我想我应该使用“hidden\u field\u tag”而不是“hidden\u field”,这样就可以保留字符串。当需要一个模型和一个表单时,应该使用hidden_字段。不确定您想做什么,但这可能会有所帮助
-在输入字段名称的末尾使用
[]
,这将导致rails自动将其转换为存储在
params[:vals]
中的数组,这样做只会引发一个错误:
ActionView::Template::error(object[]命名,但object param和@object var不存在或不响应_param:nil):
,我终于解决了这个问题,但有点麻烦。基本上,我将接受参数的行从
@xpicks=params[:vals].to_.split(“,”
替换为
@xpicks=params[:vals].to_.split(“”)[1].split(“,”)
,这很有效,但我应该能够正确地传递数组,不是吗?我已经意识到“picks.draw”变量甚至不是数组,它只是一个包含逗号分隔数字的字符串,如“1,2,3,4,5”,这使得隐藏的_字段对其执行这种转换更为奇怪。OK。我想我应该使用“hidden\u field\u tag”而不是“hidden\u field”,这样就可以保留字符串。当需要模型和表单时,应该使用隐藏的字段。
<form accept-charset="UTF-8" action="/public/checkem" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="ET8OgURJpwvnQ+18lK1xKaFXTBLMuMXVw4AoM/gVEYw=" /></div>
    <input id="vals_6,16,45,54,60,15" name="vals[6,16,45,54,60,15]" type="hidden" />
    <input id="val_index_5" name="val_index[5]" type="hidden" />
    <input name="commit" type="submit" value="10/25/2013" />
</form>
  <span class="elem" style="background-color: #b0b040; color: #000000;"><%=@xpicks[0]%></span>
<span class="elem" style="background-color: #b0b040; color: #000000;">{&quot;2</span>
Processing by PublicController#checkem as HTML
Parameters: {"utf8"=>"?", "authenticity_token"=>"ET8OgURJpwvnQ+18lK1xKaFXTBLMuMXVw4AoM/gVEYw=", "vals"=>{"2,11,42,64,74,2"=>""}, "val_index"=>{"1"=>""}, "commit"=>"11/05/2013"}