routes - Rails 6 Route Error未定义的局部变量或方法

使用我的一些 routes.

未定义局部变量或方法 `export_on_demand_dictionary_processor_path' for #ActionView::Base:0x0000000002ada0 出现此错误您的意思是? export_on_demand_dictionary_processor_index_path

如何在不向所有路由路径添加“索引”的情况下修复此错误?

url 路径发生错误。

$.ajax({
      type: 'POST',
      url: "<%= export_on_demand_dictionary_processor_path %>",
      data: $('#export_params_input').val() + '&' + $.param({'build_request_id' : $("#build_request_id").val()}),
      success: function(data, text_status, xhr) {
        window.location.href = data["new_href"];
        $("#load_build_section :input").attr("disabled", false);
        $("#export_progress_message").hide();
      },
      error: function(xhr) {
        $("#load_build_section :input").attr("disabled", true);
        $("#export_progress_message").html("Export failed. (HTTP " + xhr.status + ")");

      }
    })

这就是我的 route.rb 的样子。

resources :dictionary_processor, :as  => :dictionary_processor, :only => [] do
  collection {
    get 'import';
    get 'propose_on_demand';
    post 'run_import';
    get 'propose_build';
    post 'export_on_demand';
}

回答1

您可以将 resources 更改为 resource 或将 dictionary_processor 更改为 dictionary_processors。名称中的单数和复数在 Rails 中很重要。

请小心,因为控制器名称将变为复数。在更改之前和之后,您可以使用命令检查您的 routes 以查看更改的内容

rails routes

相似文章