Ruby on rails 如何允许文件字段中的参数上载Rails

Ruby on rails 如何允许文件字段中的参数上载Rails,ruby-on-rails,ruby,Ruby On Rails,Ruby,在我使用rails FormTagHelper文件\字段\表单的应用程序中,我有一个csv导入功能 <h1>Offer import</h1> <div class="column left"> <div class="widget"> <h2>Select file</h2> <div class="bg-white pa3&quo

在我使用rails FormTagHelper
文件\字段\表单的应用程序中,我有一个csv导入功能

<h1>Offer import</h1>
  <div class="column left">
    <div class="widget">
      <h2>Select file</h2>
      <div class="bg-white pa3">
        <%= form_tag({ action: :do_import }, multipart: true) do %>
          <%= file_field_tag :csv_file, accept: 'text/csv' %>
          <%= submit_tag 'Process' %>
        <% end %>
      </div>
    </div>
  </div>

当我尝试上载csv时,我在控制台
Unpermitted parameters::csv\u file
中看到此错误。有没有办法允许这个参数?我知道通常您允许模型上存在的参数,但此参数不允许。

不允许的参数
仅此而已。因此,您应该在您的控制器(包括它的超级)上检查是否有任何
在您的操作之前
触发
参数。允许
,如果它存在,您可以只为方法
do\u import
跳过该操作,或者只将
:csv\u文件
添加到允许的参数列表中(如果它可能不会导致创建模型时出错)。

在调用它之前是否尝试过
params.permit(:csv_文件)
?@brcebn是的,我得到了一个
NoMethodError未定义的方法
error.wird.
params
的类别是什么?你在控制器中,对吗?
    def do_import
      file = params[:csv_file]

      if file.present? && file.content_type == "text/csv"
        importer = OfferImportWorker.new
        filename = importer.offer_csv(params[:csv_file])
        OfferImportWorker.perform_async(filename, current_user.email, current_user.id, file.original_filename)
        flash.now[:alert] = "Importing offers, an email will be sent when finished."
      else
        flash.now[:alert] = "Please select a CSV file"
      end
      render "import"
    end