web-dev-qa-db-ja.com

check_box_tagを使用してHamlのチェックボックスをオンにする方法

これらのチェックボックスをオンに設定する方法を誰かに教えてもらえますか?簡単だと思いますが、1時間試してみたら、聞いてみる必要があると思います。ありがとう!

= form_tag movies_path, :id => 'ratings_form', :method => :get do
  Include: 
  - @all_ratings.each do |rating|
    = rating
    = check_box_tag "ratings[#{rating}]", 
  = submit_tag 'Refresh', :id => 'ratings_submit'
12
user1756646

参照 check_box_tag

check_box_tag "ratings[#{rating}]",  1, !!(rating.rating)

2nd parameterはチェックボックスのvalueである必要があります

3rd parameterboolean conditionである必要があります。これはtrue/falseを返し、それに依存するチェックボックスはchecked/uncheckedです。

15
Salil
check_box_tag "ratings[#{rating}]",  1, @selected.include?("#{rating}")

どこ @selectedは、要素が選択された配列です。

3
Matias Yaryura

行の最後で、チェック済みの場合はtrueを使用し、チェックなしの場合はfalseを使用します

check_box_tag "ratings[#{rating}]", true #checked

または

check_box_tag "ratings[#{rating}]", false #unchecked
2
rghjfjh

APIドックによると、チェックボックスタグは次のオプションを取ります。

check_box_tag(name, value = "1", checked = false, options = {})

これは、最初の値が名前、2番目の値が「値」、3番目の値がボックスがチェックされているかどうかを意味します。デフォルトはfalseです。したがって、チェックボックスをオンまたはオフにするには、次の操作を実行できます。

- if (some condition)
  = check_box_tag "ratings[#{rating}]", "anystring", true
- else 
  = check_box_tag "ratings[#{rating}]" 

この場合は問題ではないため、2行目はランダムな文字列を値フィールドに入力するだけです。

2
FletchRichman

サリの答えに基づいて構築します。不思議なことに、check_box_tagは、ラベルテキストのないチェックボックスを返します。配列を反復処理している場合にテキストを表示する方法は次のとおりです。

- Puppies.each do |puppy|
  = check_box_tag(puppy.name, puppy.name, puppy.goodboy?)
  = puppy.name
0
Ryan Snodgrass