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