首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails复选框数组无选择

Rails复选框数组无选择
EN

Stack Overflow用户
提问于 2015-12-01 11:49:24
回答 1查看 322关注 0票数 0

我得到了用户的computer_ids

代码语言:javascript
运行
复制
<%= check_box_tag "user[computer_ids][]", computer.id, @user.computers.include?(computer) %>

如果我从复选框数组中至少选择了一个,那就好了。但是如果我不选择任何东西,它就会给我一个这样的数组

代码语言:javascript
运行
复制
undefined method `[]' for nil:NilClass

这是因为没有参数出现。我没有找到解决办法。这一关系是habtm

我试着控制它是否是空的

代码语言:javascript
运行
复制
if ( !(params[:user][:computer_ids].empty?)  )

编辑:

因为computer_ids是用户中的唯一参数,所以它不知道什么是params:user是什么,这就是为什么它会给出错误。

代码语言:javascript
运行
复制
if ( !(params[:user].present?)  ) , has solved the problem
EN

回答 1

Stack Overflow用户

发布于 2015-12-01 11:57:26

将隐藏字段添加到所有带有空值的复选框中。如果用户没有检查任何复选框,如:-

代码语言:javascript
运行
复制
<%= form_for @user do |f| %>
    <%= hidden_field_tag "user[computer_ids][]", nil %>
    <% Computer.all.each do |computer| %>
        <%= check_box_tag "user[computer_ids][]", computer.id, @user.computers.include?(computer) %>
    <% end %>
    <%= f.submit 'Submit'%>
<% end %>

拒绝来自params的空白值,例如:

代码语言:javascript
运行
复制
params[:user][:computer_ids] = params[:user][:computer_ids].reject { |c| c.empty? }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34019726

复制
相关文章

相似问题

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