我的rails表格中有以下复选框字段:
<div class="form-group">
<%= f.label :education, "Education Employee): " %>
<%= f.check_box :education%>
</div>
该复选框默认为未选中。我想要它做的是默认被检查,除非该值已经设置为true / false。如果该值已设置为true / false,则显示该设置值的复选框值。换句话说:如果设置值为nil
,则默认为检查。
我尝试了这个,但它对我没用:
<div class="form-group">
<%= f.label :education, "Education Employee: " %>
<%= f.check_box :education, checked: true if f.object.education.nil? %>
</div>
我没有从checkbox documentation获得太多信息。
答案 0 :(得分:2)
我更愿意在数据库中设置默认值。但是当你想要将它保持在应用程序级别时 - 就像你在评论中写的那样 - 那么你可以在初始化实例后设置默认值。
# in your model
after_initialize :set_defaults
private
def set_defaults
self.education = true if education.nil?
end
答案 1 :(得分:0)
也许更好的方法是在初始迁移中设置默认值,如:
<span class="help-block" ng-model="vm.error" ng-repeat="data in vm.error">{{vm.error}}</span>
或者如果它是现有列:
def change
add_column :model, :education, :boolean, default: true
end
我知道这是一个老帖子,但也许它将来会帮助某人