2011-06-09 86 views
0

我希望能够从视图中检查从我的数据库中选择的一些元素,并将其显示在我的视图中的表格中。这个想法是建立一个元素的ID列表,并使用此列表打印所有选定的元素。所以我试图用复选框来选择或不是我的表的每一行。然后我想用一个“link_to”通过一个参数来调用控制器动作,该参数包含我的ID列表:如何使用视图中的复选框来创建列表

<%= link_to'Printer',:controller =>'MyController',:action => 'MyAction',:element_list => mylistofelement%>

但我没有成功创建mylistofelement。我如何建立一个列表到视图,并能够让mylistofelement看起来像“1,3,6,7,8”或一个数组,..但我可以用作一个参数来处理我的控制器操作。

谢谢

回答

0

好的!所以这是一个解决方案。我在rails 3.1.0rc2中做了这个btw。

所以你的观点应该是这个样子

<%= form_tag 'display' %> 
<% @artists.each do |artist| %> 
    <tr> 
    <td><%= artist.name %></td> 
    <td><%= artist.song %></td> 
    <td><%= check_box("display", artist.id) %></td> 
    </tr> 
<% end %> 

<%= submit_tag 'Print' %> 

<% end %> 

这将发布到“显示”在当前的控制器(我加了它的routes.rb) 您可以在轨道检查服务器日志窗口它张贴我们的值在PARAMS

“显示”=> { “1”=> “1”, “2”=> “0”, “3”=> “0”}

“1 “=>”1“表示artist.id = 1,并检查相应的复选框。 “3”=> “0” artist.id = 3的复选框取消选中

class ArtistsController < ApplicationController 
    def display 
     @ids = [] 
     params[:display].each do |key,val| 
     if val != "0" 
      @ids << key 
     end 
     end 

     render 'display' 
    end 

只是我togheter砍死......希望它帮助!

+0

@eldewall:不,我有样品表艺术家(编号,名称,歌曲)。我显示格式化作为 一个视图中的表内容<在@artists%为艺术家 - %> ​​artist.id​​artist.name​​artist.song我想创建与复选框重新TD选择i行想要发送到将打印相关信息的动作。 – 2011-06-09 16:06:54

+0

啊你看着做某种形式,并使用check_box_tag助手。 http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-check_box_tag – eldewall 2011-06-09 16:54:13

+0

可能是但我该怎么办? – 2011-06-10 07:41:53

相关问题