私は Simple_Form with Rails 3を使用しています。それは素晴らしいことです。簡単な質問があります。タイプがの場合、f.input
裏側のブール値ですが、trueに事前選択しておく必要があります。
ビューを介してこれを行う方法はありますか?
最良の方法は、次のようなモデルのデフォルト値を設定することです
create_table :my_table do |t|
...
t.boolean :my_boolean, :default => true
...
end
どのsimple_form
がオンになり、デフォルトでチェックボックスがオンになるように設定します。
より簡単な方法は、Daveが言うようにそれを実行し、値を1に強制するだけですが、検証が失敗し、フォームを再度表示すると、フォームが送信されたときの外観に関係なく、フォームは引き続きチェックされます。
移行したくない場合、または 'PerfectlyNormal'の回答を実行するように移行を更新できない場合は、f.inputの末尾に次を追加できます。
:input_html => { :checked => true }
したがって、次のようになります。
= f.input :some_flag, :input_html => { :checked => true }
お役に立てば幸いです。
1つのチェックボックスのみをチェックする"None"の値を持つ私にとってはうまくいきました
<%= f.input :notify, label: "Notification", as: :check_boxes, collection: ["None", "Daily", "Weekly", "Monthly", "Quarterly", "Yearly"], :item_wrapper_class => 'inline', :checked => ["None", true] %>
私はこの投稿を偶然見つけましたが、うまくいったのは最新の回答に似ていますが、短くなっています。希望の設定でオブジェクトを初期化するだけです:
def new
Object.new(my_boolean: true)
end
これはうまくいくはずです:
= f.input :some_flag, :input_html => { :value => '1' }
私の意見では、これを行うための方法は、コントローラーの属性の値を設定することです。
@ some_object.some_flag = 1