Rails rails 中的路由参数不匹配错误

Rails routing params mismatch error in rails

我正在添加 excel 导入功能,但出现错误。 :id 参数被传递而不是 :project_id 参数。

下面是我的代码-

index.html.erb

<%= form_tag import_project_stages_path ,multipart: true do %>
  <%= file_field_tag :file %>
  <%= submit_tag "Import" %>

<%end %>

stage_controller.rb

def import
    Stage.import(params[:file])
    redirect_to root_url, notice:"Projects imported. "
  end

routes.rb

resources :projects do
    resources :stages do
      collection {post :import}
    end
  end

错误

No route matches {:action=>"import", :controller=>"stages", :id=>"1"}, missing required keys: [:project_id]

您的嵌套资源将生成类似于 <host>/projects/:project_id/stages 的路由路径。因此,您需要将父项目 ID 作为路径的一部分包含在 form_tag 中。您可以通过将项目作为参数包含在 URL 辅助方法中来实现:

<%= form_tag import_project_stages_path(@project), multipart: true do %>
  ...
<%end %>