如何将数组从表单传递给控制器​​方法?

时间:2015-07-12 10:47:40

标签: jquery ruby-on-rails ruby haml

我有一个编辑表单,我在其中构建了一个数字数组。当我点击提交时,我会做“:method =>:sort”。我怎么做到这样我的控制器中的排序方法可以使用数组。编辑表格以haml。

完成

1 个答案:

答案 0 :(得分:3)

还有更多解决方案,但我更喜欢这个:

在要添加表单的模型中:

attr_accessor :order_ids

现在在haml代码中,即以add:

的形式
%input{name: "model_name[order_ids][]", type: "hidden", value: order}

在控制器中:

params[:model_name][:order_ids]

你应该得到阵列。只需将model_name更改为您的模型名称。

你为什么要发送:

= f.submit "Save Changes", :method => :sort

方法排序。这是不正确的。如果您要将表单发送到控制器中的操作sort,则需要在form url

中指定

假设您在sort中有一个名为lists_controller的动作,并在您的路线中将其定义为:

put '/sort', to: 'lists#sort', as: list_sort

然后在表单中,您可以将其指定为:

= form_for @list, :html => { :method => :put, :multipart => true, url: list_sort_path } do |f|

希望这有帮助。