You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HAML文件隐藏#columns字段时避免参数格式变更的方法

解决HAML隐藏字段数组格式被序列化的问题

当你用= f.input :columns, :as => :hidden时,SimpleForm会把数组序列化成JSON字符串,导致后端收到的是字符串而非数组。要保持数组格式,你需要生成多个对应数组元素的隐藏字段,让Rails自动识别为数组:

方法:手动循环生成多个隐藏字段

在HAML里遍历你的columns数组,为每个元素创建一个命名为[columns][]的隐藏字段:

- f.object.columns.each do |col|
  = hidden_field_tag "#{f.object_name}[columns][]", col

这样提交后,后端收到的params[:model][:columns]就会是你期望的数组格式:

columns:
- day
- Hello_name

原理是Rails会把名称带[]的多个参数自动合并成数组,而不是把整个数组序列化成单个字符串。

内容的提问来源于stack exchange,提问作者Debugger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 22:02:00