我正在将旧的 Rails 1 应用程序升级到 Rails 2,但在处理复选框时遇到了问题。旧代码对每个复选框都有一个check_box_tag
调用和相应的调用。hidden_field_tag
虽然这在以前有效,但在升级后,params 哈希中的所有复选框都会作为默认隐藏值出现,无论它们是否被选中。我一直在阅读该check_box
方法,以及在使用相应的隐藏字段方面它是如何从 Rails 1 到 2 再到 3 缓慢变化的。
是否有任何文档说明 Rails 2 中复选框处理的变化,或者有人可以解释为什么 Rails 1 方法不再有效?
编辑:经过更多研究,我发现了这个。看起来在 Rails 2.2 参数提取总是得到给定键的第一次出现(所以隐藏字段应该最后出现),但在 Rails 2.3 参数提取总是得到给定键的最后一次出现(所以隐藏字段应该先出现)。这显然在发行说明和文档中记录得很差。