Rails 6 路由错误未定义局部变量或方法
Rails 6 Route Error undefined local variable or method
我的一些路线出现此错误。
#ActionView::Base:0x0000000002ada0 的未定义局部变量或方法“export_on_demand_dictionary_processor_path”
你的意思? export_on_demand_dictionary_processor_index_path
如何在不向所有路由路径添加 'index' 的情况下修复此错误?
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';
}
您可以将 resources
更改为 resource
或将 dictionary_processor
更改为 dictionary_processors
。 rails.
中名称的单数和复数很重要
请注意,控制器名称将变为复数形式。
更改前后,您可以使用命令检查您的路由以查看更改的内容
rails routes
我的一些路线出现此错误。
#ActionView::Base:0x0000000002ada0 的未定义局部变量或方法“export_on_demand_dictionary_processor_path”
你的意思? export_on_demand_dictionary_processor_index_path
如何在不向所有路由路径添加 'index' 的情况下修复此错误?
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';
}
您可以将 resources
更改为 resource
或将 dictionary_processor
更改为 dictionary_processors
。 rails.
请注意,控制器名称将变为复数形式。 更改前后,您可以使用命令检查您的路由以查看更改的内容
rails routes