我的一个模型上有一个布尔字段: 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>
创建新实例,而不会出现问题。
答案 0 :(得分:0)
rails约定是将?
用于返回布尔值的方法。您不应该在模型的属性中添加?
。您应该使用布尔值将属性重命名为active,例如:active:boolean
。这将为您提供一个称为active?
的方法,该方法将根据歌手是否处于活动状态返回true或false。然后您的表格应该可以使用。