如何从Rails 3中的复选框更新多个记录的属性?
|
我有一个属性可将页面添加到网站的导航中(它是一个布尔值),并且我希望能够一次从复选框中打开和关闭页面。我尝试遵循以下轨道:
http://railscasts.com/episodes/52-update-through-checkboxes,但是我遇到了两个问题。
一种-我希望复选框显示\“ 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状态传递给我的控制器。
没有找到相关结果
已邀请:
1 个回复
郡晒景沧
更新导航栏字段您必须设置导航栏处于打开和关闭状态的两个部分。
编辑 需要双引号而不是第二个update_all中的单引号。更新了上面的代码。 编辑2 将逗号括在引号s6中