使用form_for提交数组

时间:2010-09-30 03:36:18

标签: ruby-on-rails

有没有办法使用'form_for'提交数组?

以下是我使用常规html传递值时的含义示例:

<input type="text" name="product[cost][]">

应该成为:

params["product"]["cost"]

但有没有办法使用form_for?

2 个答案:

答案 0 :(得分:1)

没关系......我写了这个答案然后意识到它仍然是一个字符串;由于某种原因,rails将括号添加到输入区域,但就我所知,它们没有用处。所以我同意;最好的做法是在控制器中使用before_action并手动拆分字符串。你可能会变得疯狂并使用simple_form创建一个自定义输入法,但作为一个新手,我认为这会有点密集。

我找到了一种有效的方法。我将我的属性(成分)作为数组保存到我的数据库中,这很重要。如果属性保存为数组并且我使用<%= f.text_area :ingredients %>,则文本区域中包含一组方括号。只要在括号内输入输入,参数就会以数组的形式接收输入!它不是很漂亮,但我确定我可以修改显示以便稍后隐藏这些括号。希望这会有所帮助。

答案 1 :(得分:0)

不,Rails将所有表单提交解释为(转义)字符串。您应该在控制器操作或before_filter内的后端手动将字符串转换为数组。

您期望用户传递的值的示例是什么?