Ruby on rails url_的工作原理-ransack和kaminari的问题

Ruby on rails url_的工作原理-ransack和kaminari的问题,ruby-on-rails,routes,kaminari,ransack,url-for,Ruby On Rails,Routes,Kaminari,Ransack,Url For,我使用Rails 4和Ransack和Kaminari,我有以下路线: resources :domains do resources :backlinks do collection { post :search, to: 'backlinks#index' } end end 我发现kaminari分页生成了错误的链接,如下所示: /domains/16/backlinks/search?page=2 而不是 /domains/16/backlinks?page=2 我

我使用Rails 4和Ransack和Kaminari,我有以下路线:

resources :domains do
  resources :backlinks do
    collection { post :search, to: 'backlinks#index' }
  end
end
我发现kaminari分页生成了错误的链接,如下所示:

/domains/16/backlinks/search?page=2
而不是

/domains/16/backlinks?page=2
我研究了Kaminari gem的源代码,发现它只是使用url_作为带有参数的助手:

class Tag
  def initialize(template, options = {}) #:nodoc:
    @template, @options = template, options.dup
    @params = @options[:params] ? template.params.merge(@options.delete :params) : template.params
  end
  ...
  def page_url_for(page)
    @template.url_for @params.merge(@param_name => (page <= 1 ? nil : page))
  end
end
(参数为{“操作”=>“索引”、“控制器”=>“反向链接”、“域id”=>“16”})

是的,它产生了

/domains/16/backlinks/search
我的问题是,为什么这个额外的收集路径(搜索)甚至不是“获取”对url创建的影响那么大。。。这是“正常”吗


我的第二个问题是如何摆脱这个问题,并以某种方式告诉Kaminari生成正确的链接,即使我保留了额外的路线。

您的路线应该如下所示,以避免
搜索

resources :domains do
  resources :backlinks
end

六羟甲基三聚氰胺六甲醚!好的,这是一个非常简单的解决方案。。。我将只使用GET进行搜索,而不是POST(这对于默认的RESTful路由来说是很困难的)。。我原以为我真的需要帖子,但实际上在搜索结果上分页是有问题的…PS:所以url_没有办法生成最简单的链接?还好奇吗
resources :domains do
  resources :backlinks
end