首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Rails : simple_form :从checkbox集合获取空字符串

Rails : simple_form :从checkbox集合获取空字符串
EN

Stack Overflow用户
提问于 2012-12-27 19:46:43
回答 2查看 9.1K关注 0票数 24

我的视图中有以下代码

<%= f.input :role_names, as: :check_boxes, collection: @program.role_names %>

每当我提交表单时,我都会得到类似["admin, "moderator", ""]的值,但我希望得到像["admin, "moderator"]这样的值,为什么会这样呢?

此外,我创建了一个inspect元素,在同一个控制组中,在最后一个复选框之后有一个<input name="user[role_names][]" type="hidden" value="">标记。我想这是在params[:user][:recipient_role_names]的最后添加的。

我该怎么处理呢?我知道我可以做一个reject(&:blank?),但是在params[:user][:recipient_role_names]上有更干净的方法吗?我还想知道为什么要添加input元素?是简单形式的bug,还是我做错了什么?

其他信息:

  1. simple_form gem版本: 2.0.4
  2. rails版本: 3.2.8
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-27 19:53:17

这是Rails的一个特性。您可以在Rails4中禁用它。您可以在simple form issue #603Rails issue #5402上阅读更多关于它的信息

票数 22
EN

Stack Overflow用户

发布于 2021-07-27 08:38:32

只需将include_hidden: false添加到您的输入参数:

代码语言:javascript
复制
<%= f.input :role_names, 
  as: :check_boxes, 
  collection: @program.role_names, 
  include_hidden: false 
%>

并且空字符串值不会在数组中发送。

Obs:我只是在这里添加了simple_form输入代码,以便快速参考,因为它是Vasily的答案,它为我指明了正确的方向。谢谢

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

https://stackoverflow.com/questions/14054164

复制
相关文章

相似问题

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