我希望能够从视图中检查从我的数据库中选择的一些元素,并在我的视图中显示为一个表格。
我的想法是构建一个包含元素ID的列表,并使用此列表打印所有选定元素,因此我尝试使用复选框来选择或不选择表格的每一行。然后我想用 link_to 使用包含我的id列表的参数来调用控制器动作:
<%= link_to 'Printer', :controller => 'MyController', :action => 'MyAction', :element_list => mylistofelement %>
但我没有成功创建mylistofelement
。
如何在View中构建这样的列表,并且mylistofelement
看起来像1,3,6,7,8
或者数组......,但我可以将其作为参数用于我的工作控制器动作。
由于
答案 0 :(得分:0)
OK!所以这是一个解决方案。我在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 %>
这将在当前控制器中发布到'display'(我将其添加到routes.rb) 您可以在rails服务器日志窗口中检查它是否在params
中发布了我们的值“display”=&gt; {“1”=&gt;“1”,“2”=&gt;“0”,“3”=&gt;“0”}
“1”=&gt;“1”表示artist.id = 1,并且选中了相应的复选框。 “3”=&gt;“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
端
只是我砍掉的东西......希望它有所帮助!