Rails表单内的复选框:默认选中是否未设置值

时间:2016-03-08 18:31:28

标签: ruby-on-rails ruby checkbox

我的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获得太多信息。

2 个答案:

答案 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

我知道这是一个老帖子,但也许它将来会帮助某人