0

Railsのシンプルなフォームを使用して、チェックボックスのデフォルトのチェック/チェックなしの値を設定する必要があります。たとえば、「サブスクライブ」属性を持つユーザーモデルがあるとします。したがって、彼のプロフィールページで、チェックされている場合は「はい」の値を渡すチェックボックスを出力したいと考えています。これまでのところ、私は持っています:

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

しかし、チェックボックスの値としてまだ1が表示されています...

4

1 に答える 1

1

のようなブール属性の場合:subscribed、実際には値をブール値として保存する必要があります。保存'yes'するか'no'は最良のアイデアではありません。私の答えは、このより良い慣行を反映しています。

デフォルト値を取得するには(デフォルトでボックスがチェックされているようにするため)、モデルの属性にtrueデフォルト値を指定できます。:subscribedUser

after_initialize do
  subscribed = true if subscribed.nil?
end

これにより、明示的に登録解除していないユーザーのチェックボックスがデフォルトでオンになります。

于 2012-12-09T03:31:18.063 に答える