34

次の Rails フォーム ヘルパーを使用してチェックボックスを作成しました。

<%= check_box("tag", tag.id) %>

ただし、それらのいくつかをデフォルトでチェックする必要があります。Rails のドキュメントには、これを行う方法が指定されていません。方法はありますか?どのように?

4

11 に答える 11

13

check_box をオンnewにして正しく入力する必要がある場合は、次のようにしeditます。

<%= f.check_box :subscribe, checked: @event.new_record? || f.object.subscribe? %>

ここで述べたように

于 2016-05-16T00:43:44.130 に答える
4

レールのドキュメントには、チェックする方法が記載されており、オブジェクトによって異なります。check_box で使用するインスタンス オブジェクトがない場合、最適なオプションは前述のように check_box_tag を使用することです。もしそうなら、読み進めてください。

check_box ヘルパーのドキュメントへのリンクは次のとおりです。基本的にこれがどのように機能するかは、インスタンス変数を定義する必要があるということです。そのインスタンス変数には、整数またはブール値を返すメソッドが必要です。ドキュメントから:

このオブジェクトは、ローカル オブジェクトではなく、インスタンス オブジェクト (@object) である必要があります。メソッドが整数を返すことを意図しており、その整数がゼロより大きい場合、チェックボックスがチェックされます。

たとえば、有効なメソッドを持つ @tag インスタンスがビューにあるとします。次のスニペットでは、@tag オブジェクトで有効な場合はチェックボックスがオンになり、false の場合はオフになります。デフォルトで有効にするには、コントローラーで enabled 属性を true に設定します。最後の 2 つの変数は、チェック ボックスがオンの場合とオフの場合にフォームで送信する値です。

<%= check_box "tag", "enabled", {}, "1", "0" %>

多くの場合、フォーム ビルダーで使用される check_box ヘルパーを目にするでしょう。したがって、 @tag インスタンスに form_for が使用された場合は、次のスニペットを使用する可能性が高くなります。

<%= f.check_box :enabled %>
于 2012-11-29T01:09:48.583 に答える
3

書き込み不要 チェック: true for rails >= 4.0 単純に書く

<%= check_box_tag "name", value, true %> # true or false
于 2017-03-16T12:15:39.540 に答える
2

check_box_tag代わりに、check_boxチェック済みであることを設定する方法があります。

于 2012-11-29T00:11:32.173 に答える
0

を使用すると、すでにチェックcheck_box_tagされているように設定できます。true詳細はこちら: http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-check_box_tag

于 2012-11-29T00:50:35.577 に答える