问题描述
|
我想知道复选框在Rails中如何工作?该表在数据库内部将是什么(整数,字符串等)?您如何为复选框赋予3个不同的值,而用户只能选择1(最喜欢的颜色:红色,绿色或蓝色)?
我是Rails的新手,因为我看到了很多示例,所以从头到尾进行解释将很有帮助,但是从一开始它们并不能解释所有内容。
谢谢。
解决方法
复选框和数据库之间有区别。复选框是HTML。数据库已连接到您的模型,并且与复选框无关。
在HTML视图中使用复选框时,表单将发送一些参数。默认情况下,此参数的值为\“ 1 \”(作为String)。 Rails助手还创建了一个附加的隐藏输入,该输入发送与复选框输入同名的值“ 0”。解析参数Rails会选择第一个值,因此,如果已选中此复选框,则为给定的参数分配一个值\“ 1 \”,否则将为该值分配\\“ 0 \”。
现在,保存在数据库中的值取决于模型中属性的类型。如果您将给定字段定义为布尔值,则将其存储为布尔值(这有一定的魔力,因为在Ruby中,字符串\“ 0 \”不被视为\'false \'),如果您将属性定义为整数,那么它将具有值1或0,如果它是String,则将具有\“ 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
方法。