我正试图在ruby on rails上以post
方法在文件后面发布一个整数方法。
为此,我使用hidden_field_tag
,但它将json发送到控制器,我不知道如何使用这个json。
我尝试下面的代码:
<%= form_tag import_tasks_path, multipart: true do %>
<%= file_field_tag :file %>
<%= hidden_field_tag :owner_id, :value => 1 %>
<%= submit_tag "Import" %>
<% end %>
在控制器中,我想在函数中使用文件和1
:
Task.import(params[:file], params[:owner_id])
但params[:owner_id]
的值为:{value=>1}
。
我怎么才能发布价值?像:
Task.import(params[:file], 1)
我尝试任何方式,但找不到解决方案,例如: 视图:
<%= hidden_field_tag :owner_id, 1 %>
控制器:
params[owner_id]
或:
params[:owner_id].dup
答案 0 :(得分:2)
这应该足够了:
<%= hidden_field_tag :owner_id, 1 %>
如果您无法使用params[:owner_id]
在所需的控制器中访问它,则可能有父级。尝试在控制器中执行params.inspect
,它将显示其位置。
<强>奖金强>
当您提供"{value=>1}"
时它给:value => 1
的原因是,它将hash_field_tag的值arg作为哈希值进入,并且它们应该在其上调用to_s
。