SimpleForm Rails:为复选框指定已选中和未选中的值

时间:2012-12-09 02:21:44

标签: ruby-on-rails ruby-on-rails-3 simple-form

我需要使用rails中的简单表单为复选框设置默认的选中/取消选中值,假设我有一个具有“订阅”属性的用户模型。因此,在他的个人资料页面上,我想输出一个复选框,如果选中它,它将传递“是”值。到目前为止我有:

= simple_form_for @user do |user|
= user.input :subscribed, as: :boolean, label: false, inline_label: 'Do you want to subscribe?', value: "yes"

但它仍然显示1作为复选框的值......

1 个答案:

答案 0 :(得分:1)

对于像:subscribed这样的布尔属性,你真的应该将值存储为布尔值。存储'yes''no'不是最佳选择。 我的回答将反映出这种更好的做法。

要获取默认true值(默认选中此框),您可以为:subscribed模型中的User属性提供默认值

after_initialize do
  subscribed = true if subscribed.nil?
end

这将导致默认情况下为未明确取消订阅的用户选中复选框。