2011-05-31 74 views
5

我在想如何复选框在Rails中工作?数据库里面的表是什么(整数,字符串等)?你如何给3个不同的值来选择复选框,用户只能选择1(喜欢的颜色:红色,绿色或蓝色)?复选框如何在Rails中工作?

我是新来的rails,它有助于从头到尾有一个解释,因为我看到很多示例,但是他们从一开始就没有解释任何事情。

谢谢。

回答

4

复选框和数据库之间有区别。复选框是HTML。数据库连接到您的模型,并且与复选框无关。

当您在HTML视图中使用复选框时,表单将发送一些参数。默认情况下,此参数的值为“1”(如字符串)。 Rails帮助器还创建了一个额外的隐藏输入,它将与复选框输入相同的名称发送值“0”。解析参数Rails选择第一个值,因此给定的参数在复选框被选中时被分配一个值“1”,如果没有被选中则被赋值为“0”。

现在,保存在数据库中的值取决于模型中属性的类型。如果您将给定的字段定义为布尔值,那么它将被存储为布尔值(因为字符串“0”在Ruby中不被视为“假”,所以存在一些魔力),如果将该属性定义为整数,那么它将具有值1或0,如果它是一个字符串,你将有“1”或“0”。

关于复选框的这3个值,我将使用一个<select>或一个单选按钮。

Red: <input type="radio" name="colour" value="red" checked="checked"/> 
Green: <input type="radio" name="colour" value="green" /> 
Blue: <input type="radio" name="colour" value="blue" /> 

查看ActionView::Helpers::FormHelper#radio_button方法。

+1

这与我的回答实际上是一样的,或者你应该对我说同样的话? :) – 2011-05-31 11:06:03

+1

@Ryan:我是第一个开始输入答案的人,只是我打字速度较慢。我们只是想同样的事情;-) – Arsen7 2011-05-31 11:10:19

+3

@ Arsen7:我甚至不知道为什么我们要互相输入评论。我们应该能够通过我们共同的思想进行沟通。 – 2011-05-31 11:25:12