为什么我的输入字段中没有问号?

时间:2019-05-09 15:19:47

标签: ruby-on-rails

我的一个模型上有一个布尔字段: date age 0 2018-04-15 12-20 1 2018-04-15 2-30 2 2018-04-18 5-46+ date age age_from age_to 0 2018-04-15 12-20 12 20 1 2018-04-15 2-30 2 30 2 2018-04-18 5-46+ 5 46+ 根据Rails约定以问号结尾。但是,在我的表单中,从HTML字段名称中删除了问号:

表格:

active?

HTML:

<%= form_for @singer do |f| %>
    <%= f.label :active? %>
    <%= f.check_box :active?, :checked => true %>
    <%= f.submit %>
<% end %>

我找不到任何东西可以说明为什么会这样。如果打开控制台,则可以使用<form class="new_singer" id="new_singer" action="/singers" accept-charset="UTF-8" method="post"> <label for="singer_active">Active?</label> <input name="singer[active]" type="hidden" value="0" /><input type="checkbox" value="1" checked="checked" name="singer[active]" id="singer_active" /> <input type="submit" name="commit" value="Create Singer" data-disable-with="Create Singer" /> </form> 创建新实例,而不会出现问题。

1 个答案:

答案 0 :(得分:0)

rails约定是将?用于返回布尔值的方法。您不应该在模型的属性中添加?。您应该使用布尔值将属性重命名为active,例如:active:boolean。这将为您提供一个称为active?的方法,该方法将根据歌手是否处于活动状态返回true或false。然后您的表格应该可以使用。