Ruby On Rails:在文件后面发布方法

时间:2015-06-11 12:49:07

标签: ruby-on-rails ruby-on-rails-4

我正试图在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

1 个答案:

答案 0 :(得分:2)

这应该足够了:

 <%= hidden_field_tag :owner_id, 1 %>

如果您无法使用params[:owner_id]在所需的控制器中访问它,则可能有父级。尝试在控制器中执行params.inspect,它将显示其位置。

<强>奖金

当您提供"{value=>1}"时它给:value => 1的原因是,它将hash_field_tag的值arg作为哈希值进入,并且它们应该在其上调用to_s