唔明:一个的Ruby/Rails基于web的数据库(由另一个创建的),用于产生和跟踪工程功能的在一个复选框

问题描述:

多个=>真我很新的Ruby on Rails的,我继承控制。我使用Aptana IDE。唔明:一个的Ruby/Rails基于web的数据库(由另一个创建的),用于产生和跟踪工程功能的在一个复选框

我的问题是,我试图用一个表格帮手,为我们的“产品线”选择多个值。我使用了10个复选框,如果我不使用“:multiple => true”,我会得到一个值的正确输出。

参见输出图像:

no multiple select

作品如预期

<%= f.check_box :product_line, {:class => "field"}, "A9", false %> A9 

(具有不同的值,其中 “A9” 的10倍,所以有10个复选框总,图像显示“A7 “复选框返回)

通过简单地将:多个=>真,如下面看到的图像在输出的变化:

看到输出图像:

multiple select

回报太多

<%= f.check_box :product_line, {:class => "field", :multiple => true}, "A9", false %> A9 

为什么所有的 “ - ” 输出之前只加如果多做出选择?我希望它仅返回逗号分隔值的复选框,即“A9,A7”

PRODUCT_LINES = [ "A9", "A7", "AG", "AF", "S3", "Legacy", "K/Kpro", "EMW", "HD", "Non-Metallic" ] 

其他的想法: 我可以遍历数组:product_line得到什么即时寻找呢? 我也在玩下拉菜单中的多项选择,但在返回下拉菜单之前永远不会选择第二个选项,只能选择我的第一个选项。

+3

我向你的激情兄弟致敬。您正在Windows机器上进行Rails开发。 –

为什么仅在多个 选项被选中时才在输出之前添加所有这些“ - ”?

the docs (read the Gotcha)当多个设置为true,所有的选择都将存储在product_lines但未选择check_boxes的阵列也将准备金作为发送pararms一个空字符串所以对于结果你看到product_lines会是这样的:

product_lines = ["", "", "", "A9", "A7"] 

我可以遍历数组:product_line得到什么即时寻找 的呢?

嗯,实际上这需要我们正确的使用multiple: true在你的代码中的问题。

该过程在上述(1)是check_box_tag是如何设计的,你所看到的问题是,在演讲可能在你的ECN#秀解释。在没有仔细检查代码中有我只是猜测,但通常是这样的:

<%= @ecn.product_lines.join('-') %> 

这应该是

<%= @ecn.product_lines.reject(&:blank?).join(',') %> 

其中:reject(&:blank?)摆脱空字符串,然后用,因为你需要

逗号加盟

希望这有助于!