给check box添加名字和付值:
<%= check_box(\'item_\'+i.to_s, \'checked\', {}, item.name, \'\') %>
可以使用action来获取数值:
checked = @params[\'item_\'+i.to_s][\'checked\']
我们可以使用任何值付给check box. 可以是flag, id 或者的值。下面的例子使用virtual list.
Model:
item.rb
class Item
def initialize(name)
setName(name)
setChecked(\'\') # set to empty for an unchecked Checkbox
#setChecked(name) # set to not empty for a checked Checkbox
end
def setChecked(checked)
@checked = checked
end
def checked
@checked
end
def setName(name)
@name = name
end
def name
@name
end
end
View:
list.rhtml
Item#list
Controller
item_controller.rb
#require \'item\'
class ItemController < ApplicationController
def initialize
super
@itemlist = [Item.new(\'item1\'), Item.new(\'item2\'), Item.new(\'item3\'), Item.new(\'item4\'), Item.new(\'item5\')]
end
def list
@itemlist
end
def deleteSelection
i = 0
items = @itemlist.clone
items.each { |item|
i = i + 1
if (@params[\'item_\'+i.to_s] != nil) then
checked = @params[\'item_\'+i.to_s][\'checked\']
if (checked != nil && checked.length > 0) then
if (item.name == checked) then
@itemlist.delete(item)
end
end
end
}
render_action \'list\'
end
end
thanks to
http://wiki.rubyonrails.org/rails/pages/HowToUseCheckBoxes