check_box使用疑问

在准备做一个多选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中该怎么正确编写这样的代码?
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值