我使用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的源代码,并看到它只使用带有params的url_for助手:
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然后,我用我的观点测试了这个简单的代码:
= url_for params(params是{"action"=>"index“、”控制器“”=>“反向链接、"domain_id"=>"16"})
是的,它产生了
/domains/16/backlinks/search我的问题是为什么这个额外的收集路径(搜索)甚至不是“获取”对url创建的影响那么大.这“正常”吗?
我的第二个问题是如何摆脱问题,并以某种方式告诉Kaminari生成正确的链接,即使我保留了额外的路线。
发布于 2013-11-06 19:03:00
您的路由应该如下所示,以避免search
resources :domains do
resources :backlinks
endhttps://stackoverflow.com/questions/19819327
复制相似问题