在准备做一个多选form时,check_box在使用上有不少问题,不知道如何解决?下面是试验过程
首先 controller中的代码如下
[code]
@my_data = MyTables.find(:all)
[/code]
第一次:view的form中则准备这样写
[code]
<%for mydata in @my_data%>
<%=check_box("mydata","id")%>
<%end%>
[/code]
当然这样写是有问题的,render过程中会尝试调用@mydata.id,不过代码中没有@mydata存在。运行时就会出错
第二次:
[code]
<%for mydata in @my_data%>
<%=check_box("my_data","id")%>
<%end%>
[/code]
这次@my_data是存在了,可是@my_data是一个Array,Array可没有id函数。还是出错。
第三次:这次加入了个index属性
[code]
<%@my_data.each_with_index do |data,index|%>
<%=check_box("my_data","id",{"index"=>index})%>
<%end%>
[/code]
id函数的问题始终存在,最终为了render成功,改成了下面两种代码
id改成array有的函数,就用size吧
[code]
<%@my_data.each_with_index do |data,index|%>
<%=check_box("my_data","size",{"index"=>index})%>
<%end%>
[/code]
或者
[code]
<%=check_box("my_data11","id",{"index"=>index})%>
[/code]
这两种代码,render是成功了。还是有问题。
当多选几个check_box之后,单击post按钮。无论怎么样,controller都没有收到选中状态数据。观察log,的确,post的数据中,没有一个是选中数据。
也就是说 checkbox是都显示出来了,不过只能看,不能用。
后来也尝试了下check_box_tag,稍微有所不同,post到controller的数据只有多个选中的其中一个,数据不全。也不能用。
这个rails的check_box,和check_box_tag,在这类使用循环生成form数据的代码中,难道完全不能使用吗?
循环生成多个check_box的需求还是常见的很,rails中该怎么正确编写这样的代码?
首先 controller中的代码如下
[code]
@my_data = MyTables.find(:all)
[/code]
第一次:view的form中则准备这样写
[code]
<%for mydata in @my_data%>
<%=check_box("mydata","id")%>
<%end%>
[/code]
当然这样写是有问题的,render过程中会尝试调用@mydata.id,不过代码中没有@mydata存在。运行时就会出错
第二次:
[code]
<%for mydata in @my_data%>
<%=check_box("my_data","id")%>
<%end%>
[/code]
这次@my_data是存在了,可是@my_data是一个Array,Array可没有id函数。还是出错。
第三次:这次加入了个index属性
[code]
<%@my_data.each_with_index do |data,index|%>
<%=check_box("my_data","id",{"index"=>index})%>
<%end%>
[/code]
id函数的问题始终存在,最终为了render成功,改成了下面两种代码
id改成array有的函数,就用size吧
[code]
<%@my_data.each_with_index do |data,index|%>
<%=check_box("my_data","size",{"index"=>index})%>
<%end%>
[/code]
或者
[code]
<%=check_box("my_data11","id",{"index"=>index})%>
[/code]
这两种代码,render是成功了。还是有问题。
当多选几个check_box之后,单击post按钮。无论怎么样,controller都没有收到选中状态数据。观察log,的确,post的数据中,没有一个是选中数据。
也就是说 checkbox是都显示出来了,不过只能看,不能用。
后来也尝试了下check_box_tag,稍微有所不同,post到controller的数据只有多个选中的其中一个,数据不全。也不能用。
这个rails的check_box,和check_box_tag,在这类使用循环生成form数据的代码中,难道完全不能使用吗?
循环生成多个check_box的需求还是常见的很,rails中该怎么正确编写这样的代码?