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
相关产品推荐
相关产品推荐

