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 %>
我正在添加 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 %>