假设我在页面上有两个form_tag,每个都是这样的:
= form_tag({:action => :import}, :multipart => true) do
= file_field_tag 'file'
= submit_tag 'Import', name: 'import_this'
所以我知道在params中是如何实现的,但是如果我有两个表单并且每个表单都有相同的名称字段,那么我如何在结果的params数组中命名它们以及如何访问它们?
答案 0 :(得分:3)
为了区分这两种形式,您需要为这些字段创建不同的名称。
最常见的做法是将字段嵌套到“命名空间”中,如下所示:
= form_tag({:action => :import}, :multipart => true) do
= file_field_tag 'form1[file]'
= submit_tag 'Import', name: 'form1[import_this]'
第二种形式:
= form_tag({:action => :import}, :multipart => true) do
= file_field_tag 'form2[file]'
= submit_tag 'Import', name: 'form2[import_this]'
然后在控制器中,您可以像这样访问它们:
params[:form1][:file]
或
params[:form2][:file]
请记住,您无法同时提交这两个表单。