サイトのナビゲーション (ブール値) にページを追加する属性があり、チェック ボックスからページを一度にオン/オフできるようにしたいと考えています。私はこのレールキャストに従ってみました: http://railscasts.com/episodes/52-update-through-checkboxesしかし、私は2つの問題に直面しています。
1 つ - チェック ボックスに "navbar" オプションの現在の状態を表示したい。
2つ-navbarフィールドを更新する方法がわかりません。
これが私のコントローラーです:
def nav
Section.update_all([:navbar => :params[:navbar]], :id =>params[:section_ids])
flash[:success] = "Sections were added to navbar"
redirect_to(admin_sections_path)
end
そして私の見解:
<%= form_tag nav_admin_sections_path, :method => :put do %>
<ol id="section_list" class="records_list">
<% @sections.each do |section| %>
<li id="section_<%= section.id %>">
<table>
<tr class="handle">
<td class="title link_icon directory_link"><%= section.name %></td>
<td class="option"><%= check_box_tag "section_ids[]", section.id %></td>
<td class="action"><%= link_to 'Edit', edit_admin_section_path(section), :class=>"link_icon edit_link" %></td>
<td class="action">
<% if section.has_bio == false %>
<%= link_to 'Destroy', admin_section_path(section), :confirm => 'Are you sure?', :method => :delete, :class=>"link_icon delete_link" %>
<% end %>
</td>
</tr>
</table>
</li>
<% end %>
</ol>
<ol>
<li class="submit">
<%= submit_tag %>
</li>
</ol>
<% end %>
jquery-uiでソート可能なものがあるため、テーブルはリスト項目にネストされています。
とにかく、:navbar の現在の状態を表示するには、そのチェック ボックスが必要であり、それらを更新できるようにする必要があります。今、それらを更新しようとすると、次のエラーが発生します。
can't convert Symbol into Integer
app/controllers/admin/sections_controller.rb:95:in `[]'
app/controllers/admin/sections_controller.rb:95:in `nav'
私のコントローラーのこの行に」
Section.update_all([:navbar => :params[:navbar]], :id =>params[:section_ids])
したがって、check_box 状態をコントローラーに正しく渡していないと思います。