ruby-on-rails – Rails – 如何在表单上使用隐藏字段来传递与表
发布时间:2020-12-17 03:54:59 所属栏目:百科 来源:网络整理
导读:我试图从一个从hidden_??field创建设备的表单中传递一个rfid_tag.设备has_many rfids. rfid已经存在于db中. 以下是表单中的代码: thRFID Tag #/thtd %= f.label(:@passed_rfid_tag,@passed_rfid_tag) % %= f.hidden_field :rfid_tag,:value = @passed_rfid_
我试图从一个从hidden_??field创建设备的表单中传递一个rfid_tag.设备has_many rfids. rfid已经存在于db中.
以下是表单中的代码: <th>RFID Tag #</th> <td> <%= f.label(:@passed_rfid_tag,@passed_rfid_tag) %> <%= f.hidden_field :rfid_tag,:value => @passed_rfid_tag %> </td> </tr> 这是来自devices_controller的代码: def create @cabinet = Cabinet.find(params[:device][:cabinet_id]) @device = Device.create(params[:device]) @device.rfids << Rfid.where('rfid_tag' => params[:rfid_tag]).first @device.row_id = @cabinet.row_id @device.save 我收到以下错误,因为rfid_tag不是设备的属性.它是rfid的一个属性: Can't mass-assign protected attributes: rfid_tag app/controllers/devices_controller.rb:182:in `create' 谢谢. 解决方法
质量分配错误正在发生,因为您传递的是:rfid_tag作为params [:device]属性哈希的一部分.
在您的示例代码中,需要使用hidden_??field_tag表单帮助程序提供:rfid_tag字段.这将使其不被包含在params [:device]哈希中. <tr> <th>RFID Tag #</th> <td> <%= label_tag 'rfid_tag','RFID Tag' %> <%= hidden_field_tag 'rfid_tag',@passed_rfid_tag %> </td> </tr> 然后,您可以通过params [:rfid_tag]访问它.您的create方法仍然有效. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |