2010-07-22 119 views
0

我有一个对象:@object 与吨的布尔字段。Ruby on Rails:如何提交复选框?

现在。根据HTML规范,如果未选中复选框,则不会发送该值。

这是一个问题...因为我需要这些信息。

我该如何解决这个问题?对于f.check_box的API建议fields_for ... http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#M002298

,但我无法弄清楚了@语法object.is_admin

= \

目前

,在不改变任何东西:我有这样的:

<% form_for @object do |f| %> 
     <td><%= f.check_box :allow_downloads, :label => false %></td> 
. 
. 
. 

错误:undefined method to_i”的#`

回答

0

问题是我正在访问错误的控制器。我将表单转移到了正确的视图(无论如何都对可用性更有意义),并且它很有用。

0

是该通道的自动生成的隐藏字段该文档描述的eckboxes不适合你?

+0

在我的文章中添加了一些代码。该页面只会显示错误。 – NullVoxPopuli 2010-07-22 19:27:40

1

这不是你应该关心的。

如果您查看check_box助手生成的代码,您会看到rails会创建一个表示未检查值的隐藏字段。 当您选中该复选框,将优先于隐藏字段,因为它是后宣布:

<input type="hidden" /> 
<input type="checkbox" /> 
0

有在<% f.check_box没有“=”。它应该是<%= f.chec_box...

此外,如果所有字段都是布尔值,则可以将它们全部设置为false,并且只将true设置为通过请求传递的值。

+0

是的,我注意到...但这与我的undefined methodto_i'错误 – NullVoxPopuli 2010-07-22 19:55:15

+0

没有任何关系,在你放置的代码位中,甚至没有'#'符号,我不能说出了什么问题没有看到至少在形式:] 可能它是一个错字或没有被关闭的东西。 – Draiken 2010-07-23 12:11:45