首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >升级的RoR应用程序(2到3.2)奇怪地处理表单输入

升级的RoR应用程序(2到3.2)奇怪地处理表单输入
EN

Stack Overflow用户
提问于 2013-11-13 14:11:31
回答 1查看 60关注 0票数 1

如果有一个我从2升级到3.2的RoR应用程序,最终一切都被修复了,但是我有一些来自form_tag的奇怪行为。

表格代码是:

代码语言:javascript
复制
<%= form_tag '/public/checkem' do %>
   <%= hidden_field "vals", value = picks.draw %>
   <%= hidden_field "val_index", value = xcount %>
   <%= submit_tag picks.draw_date %>
<% end %>

其中,picks.draw是一个数组,在执行时会生成:

代码语言:javascript
复制
<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>

其思想是隐藏的输入(vals)包含一个数字数组。然后,将该值正确地处理为/public/checkem函数中的数组,但当它在这里重新呈现时:

代码语言:javascript
复制
  <span class="elem" style="background-color: #b0b040; color: #000000;"><%=@xpicks[0]%></span>

其中@ element是数组的第一个元素。

代码语言:javascript
复制
<span class="elem" style="background-color: #b0b040; color: #000000;">{&quot;2</span>

它捡到了看上去像哈希开始的东西。当我查看日志文件时,我看到了这一行,它确认当表单提交时数组被更改为散列:

代码语言:javascript
复制
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"}

在版本2中,这一切都很好,但我不知道在哪里,也不知道为什么将数组作为散列传递。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-14 20:15:21

显然,当使用模型和"hidden_field“时,使用"form_for”。如果没有模型,应该使用"hidden_field_tag“

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19955946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档