0

Userhas_manyがありCategoriesます。

これらのカテゴリは、チェックボックスとして表されます。

私がやりたいことは、設定ページにあります。以前に選択したチェックボックスがすべてチェックされているすべてのチェックボックスを表示する必要があります。

また、新しいものをチェックしたり、既存のものをチェック解除してプロファイルを更新したりできるようにする必要があります。

これは、最初にカテゴリを選択したときに最初にチェックボックスを生成する方法です。

      <% @categories.each do |cat| %>
              <span class="three columns alpha">
          <label for="regularCheckbox">
        <%= check_box_tag "user[category_ids][]", cat.id, false %>
            <span class="gig-check"><%= cat.name %></span>
          </label>                  
        </span>
      <% end %>

考え?

4

2 に答える 2

2

check_box_tag の定義は次のとおりです。

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

したがって、3 番目のパラメーターは、チェックボックスがオンになっているかどうかです。常に「false」として渡しています。代わりに、次のようなものが必要です。

<% @categories.each do |cat| %>
      <span class="three columns alpha">
      <label for="regularCheckbox">
        <%= check_box_tag "user[category_ids][]", cat.id, @user.categories.include?(cat) %>
        <span class="gig-check"><%= cat.name %></span>
      </label>                  
    </span>
  <% end %>
于 2012-06-21T22:56:23.450 に答える
1

私は通常これを行います:

<% @categories.each do |cat| %>
  <% checked = @user.categories.include?(cat) %>
  <span class="three columns alpha">
    <label for="regularCheckbox">
      <%= check_box_tag "user[category_ids][]", cat.id, checked %>
      <span class="gig-check"><%= cat.name %></span>
    </label>                  
  </span>
<% end if @categories %>
于 2012-06-21T23:10:53.437 に答える