Ruby on rails url_的工作原理-ransack和kaminari的问题
我使用Rails 4和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 我
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