【问题标题】:Rails, f.check_box returns both true and false when checkedRails,f.check_box 选中时返回 true 和 false
【发布时间】:2016-04-05 07:59:56
【问题描述】:

在我的应用程序中,我为一个名为“级别”的数组提供了一些复选框,每个复选框看起来像这样(只是具有不同的值):

<%= f.check_box(:level, { :multiple => true, :id => 'level1', :class => 'input_values levels' }, 'All', 'false') %>

我的问题是,当我选中一个框时,我得到了值和“假”。如果我将“false”设置为 nil,则取消选中该框时将一无所获。

例如,如果我可以选择 - 全部 - 容易(检查) - 中级(检查) - 硬

我需要“级别”数组来打印出这样的内容:

['假','容易','中级','假']

现在它正在打印如下内容:

['假','假','容易','假','中级','假']

我的 ActiveRecord::Base

serialize :level, Array

我的控制器

def gamesession_params
      params.require(:gamesession).permit(:players, :flares, :aliens, :gamesetup, expansion:[], level:[])    
end

【问题讨论】:

  • 在 ruby​​ 中,“假”(字符串)为真。所以最好将其设置为 nil 而不是“假”

标签: ruby-on-rails checkbox


【解决方案1】:

top comment in the API 指出正确,您的'false' 必须是nil

&lt;%= f.check_box(:level, { :multiple =&gt; true, :id =&gt; 'level1', :class =&gt; 'input_values levels' }, 'All', nil) %&gt;

【讨论】:

  • 感谢您的回答!但我的问题是,如果它设置为 nil,那么当它为假时它不会向我的数组推送任何东西。我需要它在数组中说假。
  • 遗憾的是您没有发布您的数据模型,但我怀疑它可以改进。数组中的值是 nil 还是 false 对您来说并不重要。
猜你喜欢
  • 2014-06-03
  • 2012-11-11
  • 2013-05-10
  • 2015-10-03
  • 2018-11-09
  • 1970-01-01
  • 1970-01-01
  • 2019-03-29
  • 1970-01-01
相关资源
最近更新 更多