【问题标题】:How do checkboxes work in Rails?复选框在 Rails 中是如何工作的?
【发布时间】:2011-05-31 19:09:09
【问题描述】:

我想知道 Rails 中的复选框是如何工作的?数据库中的表是什么(整数、字符串等)?您如何为复选框提供 3 个不同的值,而用户只能选择 1 个(最喜欢的颜色:红色、绿色或蓝色)?

我是 Rails 新手,从头到尾进行解释会有所帮助,因为我看到了很多示例,但它们并没有从头开始解释所有内容。

谢谢。

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    复选框和数据库是有区别的。复选框是 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 方法。

    【讨论】:

    • 这实际上与我的答案相同,或者您应该对我说同样的话? :)
    • @Ryan:我是第一个开始输入答案的人,只是我打字速度较慢。我们只是想同样的事情;-)
    • @Arsen7:我什至不知道我们为什么要互相输入 cmets。我们应该能够通过我们共同的思想进行交流。
    • 我会删除我的,你可以拥有这个。你比我先回答了他的另一半问题。
    • @Ryan:谢谢,我很感激。关于通过共享思想进行交流 - 我们这样做,但使用 cmets 我们允许其他人参与 ;-))
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    • 2015-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多